Почему я не могу ссылаться на экземпляр/объект вне функции, в которую я его создал, и как я могу исправить это.Почему я не могу ссылаться на экземпляр/объект за пределами функции, которую я создал?
упрощенный код:
class MyClass:
def PrintThis(self):
print ("Hello World")
def MyClassPrinter():
x = MyClass()
x.PrintThis() #This Works
MyClassPrinter()
x.PrintThis() #This "is not defined"
Это выходит как:
Hello World
Traceback (most recent call last):
File "C:\User\Desktop\test.py", line 19, in <module>
x.PrintThis() #This "is not defined"
NameError: name 'x' is not defined
Я не могу удалить функцию или инициализировать его вне функции, потому что в исходном коде на самом деле делает что нибудь.
Прошу прощения, если это глупый вопрос или уже ответили где-то в другом месте.
Замените 'MyClassPrinter()' на 'x = MyClassPrinter()' во внешней области, если вы хотите ссылаться на тот же экземпляр, который вы создали внутри 'def MyClassPrinter', вам нужно добавить' global x' в метод. – ZdaR