Как в ООП создать глобальную переменную? Есть словарь, который нужно создать один раз при запуске программы, и работать с ним. Пробовал такое реализовать при помощи глобальной переменной, но говорят, что в ООП их лучше не использовать. Каким образом можно решить данную проблему?class One: def __init__(self): Two().keyDir() class Two: def keyDir(self): self.keyboardDir = {} print(self.keyboardDir) def message(self): self.keyboardDir["Word"] = {'Key':'Value'} print(self.keyboardDir) Two().message() if __name__ == "__main__": One()
Для решения данной проблемы в ООП можно использовать статические переменные или методы. Вот как можно модифицировать ваш код, чтобы использовать статическую переменную для словаря:
class Two: keyboardDir = {} def __init__(self): pass def keyDir(self): print(Two.keyboardDir) def message(self): Two.keyboardDir["Word"] = {'Key':'Value'} print(Two.keyboardDir) class One: def __init__(self): Two().keyDir() Two().message() if __name__ == "__main__": One()
В этом примере приведен метод использования статической переменной keyboardDir в классе Two. Теперь словарь будет общим для всех экземпляров класса Two, и вы сможете обращаться к нему, не создавая каждый раз новый экземпляр класса.
Для решения данной проблемы в ООП можно использовать статические переменные или методы. Вот как можно модифицировать ваш код, чтобы использовать статическую переменную для словаря:
class Two:keyboardDir = {}
def __init__(self):
pass
def keyDir(self):
print(Two.keyboardDir)
def message(self):
Two.keyboardDir["Word"] = {'Key':'Value'}
print(Two.keyboardDir)
class One:
def __init__(self):
Two().keyDir()
Two().message()
if __name__ == "__main__":
One()
В этом примере приведен метод использования статической переменной keyboardDir в классе Two. Теперь словарь будет общим для всех экземпляров класса Two, и вы сможете обращаться к нему, не создавая каждый раз новый экземпляр класса.