Instanzierung und Constanten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Donnerstag 23. Februar 2006, 22:02

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]
BlackJack

Donnerstag 23. Februar 2006, 23:30

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.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Freitag 24. Februar 2006, 00:01

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.
Antworten