【发布时间】:2020-12-24 21:48:13
【问题描述】:
背景:我一直在尝试通过将全局变量转换为静态类变量、将方法转换为类方法......等将整个 python 文件包装在另一个文件的类中。python 文件本身有一个类,并且具有该类的全局实例化,这意味着该类现在是一个内部类,我将需要该内部类类型的静态类变量。 [如果您有更好的方法将整个 python 文件作为类包含在其他 python 文件中而不使用模块(我需要将所有代码严格放在一个文件中),请告诉我。尽管如此,我很想知道下面有什么问题]
我已经能够将我的问题减少到以下几点:
class ok:
class he:
def __init__(self):
self.x=1
she=[he() for i in range(3)]
将导致:'name 'he' is not defined' 但是这可行:
class ok:
class he:
def __init__(self):
self.x=1
she=[]
for i in range(3):
she.append(he())
据我所知,两种代码的结果相同,那么为什么一种合法而另一种不合法呢?
【问题讨论】:
标签: python python-3.x inner-classes