Seite 1 von 1

Deep Dark Magic Meta

Verfasst: Donnerstag 11. Oktober 2007, 09:53
von Goswin
Was ist der Sinn vom String 'beliebig' (habe ich so genannt) im folgendem Programmteil:

Code: Alles auswählen

Expklasse = type('beliebig', (object,), {
  '__doc__': "Experimentalklasse zum Studium von type",
  'ff': (lambda  self,x,y : x+y),
  })
kl = Expklasse()

print Expklasse.__doc__  #OK
print 'kl.ff(2,5) =', kl.ff(2,5) #OK
print 'Expklasse.ff(kl,2,5) =', Expklasse.ff(kl,2,5) #OK

print Expklasse, type(Expklasse) #OK
print beliebig  #FEHLERMELDUNG!
Ist es wirklich so belibig, wie mir vorkommt?

Verfasst: Donnerstag 11. Oktober 2007, 10:49
von BlackJack
Das ist der Name der als `__name__` an dem Klassen-Objekt hängt. Der ist genauso beliebig wie der Name in einer ``class`-Definition und sollte so gewählt werden, dass man eine Ahnung hat wo die Klasse herkommt, weil der Text ja unter anderem in Tracebacks ausgegeben wird.

Re: Deep Dark Magic Meta

Verfasst: Donnerstag 11. Oktober 2007, 13:27
von Leonidas
Goswin hat geschrieben:

Code: Alles auswählen

print beliebig  #FEHLERMELDUNG!
Sag nicht, dass dich das wundert? Du hast den Namen ``beliebig`` nicht gebunden. Python bindet Namen nicht selbst, dass musst wenn dann du machen.

Damit es klarer wird:

Code: Alles auswählen

name = 'beliebig'
print beliebig
Funktioniert nicht, weil du ``belibig`` nirgendwo gebunden hast. Genauso wie in deinem Quellcode.

P.S.: Wenn du an die Code-Tags ein ``=py`` anhängst, wird das Python-Highlighting aktiviert.