Le open admet les flags sont : r, w, a, +, u et U. On peut très bien avoir rw+U, le tout en unicode évidement. Il faut les parser caracyère par caractère parce que j'imagine que l'ordre n'est pas figé.
Oui, et donc ? Tu penses que parser une chaîne de 4 caractères (fussent-ils unicode) est un problème ? Le coût est absolument minuscule, surtout par rapport au coût de l'ouverture du fichier proprement dite.
Ça n'évolueras jamais ? Python n'ajouteras jamais de fonctionnalités à sa fonction open() ? Ce serais trop compliqué pour l'utilisateur ?
Franchement, mis à par la taille des identifiants que reproche-tu à un code qui est ainsi :
f=open('fichier',FFlag.read|FFlag.write)
face à
f=open('fichier','rw')
Tu écris 20 caractères de plus, c'est si infernal pour toi ?
Avec la première notation, des outils externes peuvent valider le code, ton IDE peut t'aider (un FFlag.<tab> te donne la liste des options), tu n'a aucun overhead aussi minime soit-il, ...
Alors oui ce n'est pas dans l'optique python qui cherche à en faire le maximum à l'exécution et un minimum avant, mais ce n'est pas pour ça que c'est mal.
D'ailleurs l'appelle système (qui ajoute beaucoup plus de contrôle sur l'utilisation des fichiers) utiliser des constantes.
Oui, et il est aussi plus bas niveau. Ce n'est pas un hasard.
J'ajouterai que Python est un langage de haut niveau, et que Java prétend en être un.
Il est surtout nettement plus précis dans son utilisation. Le open() python a très peu de possibilités face au open() système. Être haut niveau ne signifie pas être limité. Java se situe entre les deux.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Les vrais ajouts
Posté par barmic . En réponse au journal Java 7 est dispo !. Évalué à 2.
Ça n'évolueras jamais ? Python n'ajouteras jamais de fonctionnalités à sa fonction
open()? Ce serais trop compliqué pour l'utilisateur ?Franchement, mis à par la taille des identifiants que reproche-tu à un code qui est ainsi :
face à
Tu écris 20 caractères de plus, c'est si infernal pour toi ?
Avec la première notation, des outils externes peuvent valider le code, ton IDE peut t'aider (un
FFlag.<tab>te donne la liste des options), tu n'a aucun overhead aussi minime soit-il, ...Alors oui ce n'est pas dans l'optique python qui cherche à en faire le maximum à l'exécution et un minimum avant, mais ce n'est pas pour ça que c'est mal.
Il est surtout nettement plus précis dans son utilisation. Le
open()python a très peu de possibilités face auopen()système. Être haut niveau ne signifie pas être limité. Java se situe entre les deux.Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)