Bonjour à tous,
voici un petit bout de code qui illustre un truc qui m'échappe :
affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 class Spam: e_and,e_now,e_for,e_something,e_completely,e_different = xrange( 6 ) def value (self,name): # fonction ringarde qui fait ce que je veux if name == 'and' : return self.e_and if name == 'now' : return self.e_now if name == 'for' : return self.e_for if name == 'something' : return self.e_something if name == 'completely' : return self.e_completely if name == 'different' : return self.e_different return -1 def auto_value (self,name): # fonction "classe", mais qui ne marche pas return self.__dict__.get( 'e_'+name,-1 ) s = Spam() print dir( s ) print s.__dict__ print s.value('for') print s.value('eggs') print s.auto_value('for') print s.auto_value('eggs')D'où mes questions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ['__doc__', '__module__', 'auto_value', 'e_and', 'e_completely', 'e_different', 'e_for', 'e_now', 'e_something', 'value'] {} 2 -1 -1 -1
Pourquoi y a-t-il une différence entre dir et __dict__ ?
Comment "instrospecter" les membres statiques ?
Pourquoi auto_value ne marche pas ?
Merci d'avance
Partager