Wie der Zugriff auf variable außerhalb der Klasse in meinem Beispiel?
class testing():
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def house(self):
d = self.a+self.b+self.c
print d
module="hello"
p = testing(1, 2, 3)
p.house()
Wie erhalte ich Zugang zu module
variable aus meiner testing
Klasse? Ich weiß, ich könnte nur hinzufügen, dass es als parameter an den Konstruktor der Klasse by doing:
p=testing(1,2,3,module)
Aber ich will nicht zu tun, es sei denn ich muss. Welche anderen Möglichkeiten kann ich auf module
variable aus dem inneren der testing
Klasse?
- Wenn die variable definiert ist, oberhalb der Klasse, können Sie einfach eine Referenz auf die gleiche Weise, Sie würden darauf verweisen, sonst nirgends. Jedoch, DIES IST EINE SCHRECKLICHE IDEE. Nur übergeben Sie an den Konstruktor.
- Fast ... so lange, wie die variable definiert ist, bevor der Verweis (Instanziierung), wird die Referenz gelingt. Aber ich Stimme zu, dass diese aussieht wie ein baaaaaad Idee in den ersten Platz.
- Tatsächlich, Sie können sogar definieren, die es nach der Instanzierung... solange Sie nicht die Methode aufrufen, die darauf verweist, bis er definiert wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du einfach darauf verweisen; Sie brauchen keine spezielle Globale Erlaubnis zum Zugriff. Ist dies nicht der beste Weg, aber da Sie noch nicht beschrieben, Ihre Anwendung und Modularität Anforderungen, über alles, was wir tun können, gerade jetzt ist die Lösung Ihres Problems.
Durch die Art und Weise, Ihre a, b, c Verweise sind falsch. Siehe unten.
Ausgabe:
greeting = module
auf Klassen-Ebene statt in der init-Methode fehl mit Fehler.Könnten Sie
globals()
. Aber ich bin mir nicht sicher, ob das ist eine gute Idee.Ausgabe:
print module
hat den gleichen Effekt; eine freie variable in einer Methode gesucht, die im globalen Gültigkeitsbereich.Vielleicht verstehe ich nicht die Frage, es funktioniert bereits, da die Globale variable "module" definiert werden, bevor Sie instanziert die Klasse.
Ausgänge:
Hallo
6