您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python类实例变量和类变量

python类实例变量和类变量

这是因为Python使用解析名称的方式.。在编写时self.list,Python运行时首先尝试list通过在实例对象中查找名称来解析名称,如果找不到,则在类实例中进行查找。

让我们逐步研究它

self.list.append(1)

但是当您绑定名称时,情况有所不同:

self.list = []

因此,这始终是一个实例变量。

您的第一个示例list类实例中创建了一个,因为这是当时的活动范围(没有self任何地方)。但是您的第二个示例list在的范围内显式创建了一个self

这个例子更有趣:

class testClass():
    list = ['foo']
    def __init__(self):
        self.list = []
        self.list.append('thing')

x = testClass()
print x.list
print testClass.list
del x.list
print x.list

那将打印:

['thing']
['foo']
['foo']

删除实例名称后,可以通过self引用看到类名称

python 2022/1/1 18:28:02 有409人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶