我最近偶然发现了一个问题,如何在不创建该类的实例(即
__init__
)的情况下从其范围之外访问类的实例变量(即self.name
内的变量,如main = foo()
)。
我想做的事情的例子:
class foo:
def __init__(self,name):
# wanna access self.name
self.name = name
class bar:
# And use it here
os.mkdir(foo.name)
您可以将变量设置为
global
,然后您就可以从任何地方访问该变量。并且还修改它。
不确定为什么要使用嵌套类,但是:
foo_name = None
class main:
class foo:
def __init__(self,name):
global foo_name
foo_name = self.name = name
class bar:
def __init__(self):
print(foo_name)
main.foo("Jonathan")
main.bar()
打印出“Jonathan”