#python #oop
#python #ооп
Вопрос:
Теперь у меня проблема с глобальной переменной, которая определена, но при запуске объекта класса возникает ошибка «Переменная» не определена
В частности,
- Я создал файл с именем
__init__.py
, который содержит глобальные переменные - Создайте
class_0.py
, содержащую функцию, которая использует определенную переменную в__init__.py
- Создайте
class_1.py
, чтобы объединить вещи, которые также запускают функцию вclass_0.py
__init__.py
asset = {'abc': 123, ...}
cost = {...}
class_0.py
from __init__ import *
class defc():
def function(self):
a = asset['abc']
return ...
class_1.py
from __init__ import *
from class_0 import *
class run_main():
def __init__(self):
self.defc = defc()
def run(self):
self.defc.function()
Затем возникает ошибка
Ошибка имени: имя ‘asset’ не определено
Итак, как решить эту проблему? asset
переменная представляет собой очень длинный словарь, и я не хочу помещать ее в конкретный class
из-за того, что другие class
используют это.
Комментарии:
1. Вы должны знать, что
__init__.py
это больше не требуется в python 3.32. @snatchysquid итак, как решить мою проблему?
3. @ShanN Ваше решение работает для меня, попробуйте его здесь . Используете ли вы новейшую версию Python 3? Или, если вы используете
jupyter
, попробуйте сбросить notebook.4. В зависимости от вашего макета файла вам может потребоваться указать, что импорт является локальным, добавив точку (например
from .__init__ import ...
). Кроме того, было бы лучше использовать какой-нибудь другой модуль, напримерconstants.py
, вместо__init__.py
, хотя это не меняет семантику.
Ответ №1:
Сохраните всю свою работу и попробуйте перезапустить ядро.