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

Python类中的属性是否共享?

Python类中的属性是否共享?

不同之处在于,在第二个示例中,您正在创建一个新列表self.tricks作为对象的属性

def __init__(self,name):
    self.name=name
    self.tricks=[name]    # <-- this is creating the new attribute for the object
    self.tricks.append(name)

一个示例之所以有效是因为Python解析名称的方式:如果在对象中找不到self.tricks(因为尚未创建),那么它将尝试将其作为类的成员来查找。由于有技巧 ,因此您可以访问它。

如果您在第二个示例中尝试使用mytest.tricks,则可能对您很清楚:

def __init__(self,name):
    self.name=name
    mytest.tricks=[name]    # <-- this is accesing the class attribute instead
    self.tricks.append(name)

这将输出您的实际期望。

python 2022/1/1 18:43:11 有299人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶