栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

类的所有实例与python 3.2中的属性具有相同的dict

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

类的所有实例与python 3.2中的属性具有相同的dict

他们指的是同一个对象。这是一个非常常见的陷阱。如果希望它们每个都有自己的

dict
,则需要在
__init__
方法中创建它。

class Sector:   x = 0     #Position of the sector. The galactic (absolute) position of any object is its in-sector position   y = 0     #plus the galactic position offset times the size of a sector.    def __init__(self):       self.stardict = dict()

就目前的代码而言,当您尝试

stardict
通过进行访问时
self.stardict
,python首先
stardict
实例
上查找,但是当在 实例 中找不到
stardict
属性时,它将在 class
上查找。它
stardict
在类上找到,因此使用它。但是,这意味着所有实例都找到相同的对象
stardict
(因为它们所有相同类的实例)-更新它们中的一个实例以及所有其他实例
stardict
都知道(快于光速!)*。

*请注意,这不会破坏任何物理定律。由于它们是同一对象,因此信息传播没有距离…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626571.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号