heritage classe, importé module - Python - Programmation
Marsh Posté le 13-06-2007 à 12:50:26
Pareil que taz, l'import permet de rendre un objet (module, classe, constante, whatever) visible dans le module/namespace courant, si c'est pas importé Python ne peut pas savoir que ça existe
Marsh Posté le 23-06-2007 à 08:46:03
masklinn a écrit : Pareil que taz, l'import permet de rendre un objet (module, classe, constante, whatever) visible dans le module/namespace courant, si c'est pas importé Python ne peut pas savoir que ça existe |
Mais quel est l'avantage à faire "from sys import *" ou bien "import sys" ? Dans l'un des cas il faudra indiquer "sys." devant chaque objet et pas dans l'autre mais est-ce la seule différence ???
Marsh Posté le 23-06-2007 à 11:46:24
Sve@r a écrit : Mais quel est l'avantage à faire "from sys import *" ou bien "import sys" ? Dans l'un des cas il faudra indiquer "sys." devant chaque objet et pas dans l'autre mais est-ce la seule différence ??? |
C'est la seule différence notable oui, le premier pollue le namespace local et peut générer des conflits de nommage, alors qu'il est beaucoup plus difficile de le faire avec le second (il faut avoir un objet "sys" dans son ns local)
Marsh Posté le 23-06-2007 à 19:43:53
masklinn a écrit : C'est la seule différence notable oui, le premier pollue le namespace local et peut générer des conflits de nommage, alors qu'il est beaucoup plus difficile de le faire avec le second (il faut avoir un objet "sys" dans son ns local) |
Je comprends le dilemne mais je débute donc j'ai pas encore les automatismes. Doit-on, pour être propre, toujours éviter les conflits en spécifiant systématiquement class.item ?
J'ai voulu une fois écrire un script shell avec toute la rigueur voulue en isolant, pour éviter le même genre de conflit, les noms des variables par des accolades style "${nom}" au lieu de "$nom". Le résultat est que j'avais un script shell super-rigoureux mais absolument immonde à relire. Ne risque-t-on pas d'avoir le même problème en Python ?
Je fais un peu de PyQT et je me sens plus à l'aise à écrire "widget=QWidget(...)" plutôt que "widget=qt.QWidget(...)"...
Marsh Posté le 23-06-2007 à 20:24:54
Sve@r a écrit : Je comprends le dilemne mais je débute donc j'ai pas encore les automatismes. Doit-on, pour être propre, toujours éviter les conflits en spécifiant systématiquement class.item ? |
Ya pas de règle universelle, tout ce que je peux te dire c'est "ça dépend".
Après, classiquement, il est quand même recommandé de ne pas utiliser "from foo import *", on recommande habituellement d'utiliser "import foo" (qui crée un namespace) ou "from foo import bar, baz, buzz" (qui spécifie clairement et explicitement quels objets on importe)
Marsh Posté le 13-06-2007 à 12:13:01
bonjour,
je débute avec python, et j'aimerai savoir, si c'est obligatoire d'importé une classe (ou le module qu'il la contien, ) avant de l'utilisé (dériver de cette classe)
merci