python глобальная переменная вызывается внутри метода - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть несколько классов в файле python. В classA у меня есть метод с именем a1

def a1(self):
    global p
    p = abc

вне всех классов есть метод с именем z, который просто returns p

def z():
   return p

Внутри одного другой класс с именем classB является вызовом метода b1

def b1(self):
    print(z())

Когда classB первый раз запускается и проходит через init и настроенный класс, он выводит функцию z, однако когда он перезагружает класс и пытается его снова напечатать, выдает ошибку, говорящую, что p не определен внутри функции z. Как мне это исправить?

1 Ответ

0 голосов
/ 12 февраля 2020

вы пропустили некоторые важные детали ...

p=None
def z():
   return p
class X:
   def a1(self):
     global p
     p = "abc"

print(z())
X().a1()
print(z())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...