Deep Dark Magic Meta

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
Benutzeravatar
Goswin
User
Beiträge: 361
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen

Donnerstag 11. Oktober 2007, 09:53

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

Donnerstag 11. Oktober 2007, 10:49

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.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 11. Oktober 2007, 13:27

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten