Seite 1 von 1

Instanzierung und Constanten

Verfasst: Donnerstag 23. Februar 2006, 22:02
von Mad-Marty
Hi,

was macht python wenn es eine klasse foo instanziert die wie folgt aussieht:

Rechnet es die operationen jedesmal durch beim instanzieren oder ist es so schlau und hinterlegt die werte fertig ausgerechnet ?

Code: Alles auswählen

class foo(object):
   a = 0x03
   b = 0x04
   c = 0x05
   d = a | b
   e = a | d

   def blah (self):
      pass
[/b]

Verfasst: Donnerstag 23. Februar 2006, 23:30
von BlackJack
In Python ist so ziemlich alles eine ausführbare Anweisung. ``global`` ist so ziemlich die einzige Deklaration.

Die ``class``-Anweisung auf Modulebene wird, wie alles andere auf Modulebene, ausgeführt wenn das Modul das erste mal importiert wird.

Wann etwas ausgeführt wird, bekommt man sehr einfach mit ``print`` Anweisungen heraus. Setz einfach mal eine vor, nach oder zwischen die Zuweisungen der Klassenattibute.

Verfasst: Freitag 24. Februar 2006, 00:01
von Mad-Marty

Code: Alles auswählen

>>> class foo(object):
... 	a = 0x03
... 	b = 0x04
... 	print a | b
... 	
7
>>> o = foo()
>>> o2 = foo ()
>>> 

Danke Blackjack. Schlussfolgerung, das wird einmal beim import ausgerechnet.