heritage classe, importé module

heritage classe, importé module - Python - Programmation

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

Reply

Marsh Posté le 13-06-2007 à 12:13:01   

Reply

Marsh Posté le 13-06-2007 à 12:47:25    

oui

Reply

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 [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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 [:spamafote]


 
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 ???


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

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)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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(...)"...

Message cité 1 fois
Message édité par Sve@r le 23-06-2007 à 19:44:26

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

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 ?
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(...)"...


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)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed