导入 class 变量 python
Importing class variable python
我有两个python classes,一个使用另一个的变量
class答:
class A(object):
variable = None
@classmethod
def init_variable(cls):
cls.variable = something
class乙:
variable = __import__('module').A.variable
class B(object):
@staticmethod
def method():
return variable
我尽可能地简化了我的问题。所以我的问题是为什么即使我使用 init_variable
[=19= 将 A.variable
class 变量更新为 something
,我仍然有 B.method()
返回 NoneType
]
我稍微更改了您的代码,以便它实际上可以执行您想要的操作:
your_package/klass_A.py
class A(object):
variable = None
@classmethod
def init_variable(cls, something):
cls.variable = something
your_package/klass_B.py
from your_package.klass_A import A
class B(object):
@staticmethod
def method():
return A.variable
现在,您实际上可以更新 A.variable
并在 B
中使用更新后的变量。例如:
print B.method()
A.init_variable('123')
print B.method()
returns:
None
123
我有两个python classes,一个使用另一个的变量
class答:
class A(object):
variable = None
@classmethod
def init_variable(cls):
cls.variable = something
class乙:
variable = __import__('module').A.variable
class B(object):
@staticmethod
def method():
return variable
我尽可能地简化了我的问题。所以我的问题是为什么即使我使用 init_variable
[=19= 将 A.variable
class 变量更新为 something
,我仍然有 B.method()
返回 NoneType
]
我稍微更改了您的代码,以便它实际上可以执行您想要的操作:
your_package/klass_A.py
class A(object):
variable = None
@classmethod
def init_variable(cls, something):
cls.variable = something
your_package/klass_B.py
from your_package.klass_A import A
class B(object):
@staticmethod
def method():
return A.variable
现在,您实际上可以更新 A.variable
并在 B
中使用更新后的变量。例如:
print B.method()
A.init_variable('123')
print B.method()
returns:
None
123