определение переменной за пределами класса, который трудно использовать в классе с ошибкой имени - PullRequest
0 голосов
/ 25 мая 2019

Я создал класс, используя переменную, которая объявлена ​​вне класса, а затем попытался использовать этот класс из другого файла. Но после использования в другом файле, определения переменной формы этого файла, я получаю имя не определена ошибка.

Изначально fileOne.py выглядело так:

dat = 'this string'

class myClass:
    def __init__(self):
        self.num = 5
    def method(self):
        return self.num+dat

Теперь, когда я изменяю планировку, чтобы dat был определен в другом файле, который вызывает myClass.

Изменено fileOne.py

#dat = 'this string'

class myClass:
    def __init__(self):
        self.num = 5
    def method(self):
        return self.num+dat

fileTwo.py

from fileOne import *

dat = "file 2 str"
obj = myClass()

Я вернусь

NameError: name 'dat' is not defined.

Я думаю, что мне нужно сделать, заменить dat на self.dat и передать его в качестве параметра функции. Я не уверен, почему у меня такая проблема.

1 Ответ

1 голос
/ 25 мая 2019

ваш код класса не импортирует саму дату. если вы хотите использовать конфиги в разных классах, я предлагаю следующее:

class SystemConfig():
    dat = 5

class myClass(SystemConfig):
    def __init__(self):
        self.num = 5
    def method(self):
        return self.num + SystemConfig.dat

или из другого файла:

from fileone import SystemConfig

class myClass(SystemConfig):
    def __init__(self):
        self.num = 5
    def method(self):
        return self.num + SystemConfig.dat

это гораздо лучшая практика, она также позволяет запускать настройку системы в одном месте.

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