Ich habe den folgenden Code:Python: instantiaing ein Objekt innerhalb einer Methode
class Fish():
def __init__(self, color, size):
self.color = color
self.size = size
def getInfo(self):
return self.size, self.color
class Catch():
def func1(self):
catFish = Fish('blue', 'big')
return catFish
if __name__ == '__main__':
bob=Catch()
bob.func1()
catFish.getInfo()
Wenn ich versuche, catFish.getInfo() bekomme ich folgende Fehler
Traceback (most recent call last):
File "test4.py", line 58, in <module>
catFish.getInfo()
NameError: name 'catFish' is not defined
Ich gehe davon zu tun Dies liegt daran, dass die lokale Variable "CatFish" ausgegeben wird, wenn die Methode "func1" beendet wird. Gibt es eine Möglichkeit, ein Objekt in einer Methode zu instanziieren und nach dem Ende der Methode auf dieses Objekt zugreifen zu können?
Der Code, den Sie tatsächlich gepostet haben, wird fehlschlagen, wenn 'func1' nicht definiert wird - soll das stattdessen' test' sein? Angenommen, Sie rufen 'Catch.test()' zu einem bestimmten Zeitpunkt auf, weisen Sie den Rückgabewert einer Variablen zu - das können Sie '.getInfo()' on nennen. – jasonharper
Whoops Tippfehler gerade behoben – user2734815