我需要跨文件访问变量,我该怎么办?
I need to access variables across files, what should I do?
如何让 MyClassB
访问 MyClassAC
中的 dict k
?
我有两个文件,第一个文件是MyClassB.py
,内容如下:
class MyClassB:
print('This is MyClassB!')
@classmethod
def run(cls):
for _i in cls.codes:
print(k[_i]) # What code should I write here to access k defined in MyClassAC?
#If k is relatively large, will it affect performance if it is written in the class attribute?
主文件内容MyClassAC.py
如下:
from MyClassB import MyClassB
class MyClassA:
codes = range(3)
print('This is MyClassA!')
class MyClassC(MyClassB, MyClassA):
print('This is MyClassC!')
pass
k = {}
for i in MyClassC.codes:
k[i] = MyClassC
MyClassC.run()
您可以将 k
传递给 run()
方法:
class MyClassB:
print('This is MyClassB!')
@classmethod
def run(cls, k):
for _i in cls.codes:
print(k[_i])
调用可以这样修改:
k = {}
for i in MyClassC.codes:
k[i] = MyClassC
MyClassC.run(k)
如何让 MyClassB
访问 MyClassAC
中的 dict k
?
我有两个文件,第一个文件是MyClassB.py
,内容如下:
class MyClassB:
print('This is MyClassB!')
@classmethod
def run(cls):
for _i in cls.codes:
print(k[_i]) # What code should I write here to access k defined in MyClassAC?
#If k is relatively large, will it affect performance if it is written in the class attribute?
主文件内容MyClassAC.py
如下:
from MyClassB import MyClassB
class MyClassA:
codes = range(3)
print('This is MyClassA!')
class MyClassC(MyClassB, MyClassA):
print('This is MyClassC!')
pass
k = {}
for i in MyClassC.codes:
k[i] = MyClassC
MyClassC.run()
您可以将 k
传递给 run()
方法:
class MyClassB:
print('This is MyClassB!')
@classmethod
def run(cls, k):
for _i in cls.codes:
print(k[_i])
调用可以这样修改:
k = {}
for i in MyClassC.codes:
k[i] = MyClassC
MyClassC.run(k)