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

Python3变量名称的简单区别是否可以改变代码的运行方式?

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

Python3变量名称的简单区别是否可以改变代码的运行方式?

是的,尽管不是很多直接导致此问题的变量名称。

当Python退出时,所有模块也会被删除。清除模块的方法是将模块中的所有全局变量设置为

None
(这样,这些引用就不再引用原始对象)。这些全局变量是字典对象中的键,并且由于字典是任意排序的,因此重命名一个变量可以更改清除变量的顺序。

当您重命名

v
vb
,你改变了哪些变量被清除,现在的顺序
Person
是最后的清除。

一种解决方法是

type(self).num_of_people -= 1
__del__
方法中使用:

def __del__(self):    type(self).num_of_people -= 1

因为实例将始终仍然引用该类,或者测试if

Person
是否未设置为
None

def __del__(self):    if Person is not None:        Person.num_of_people -= 1

两个注意事项:

  • None
    根据安全对象完成,CPython 3.4不再将全局变量设置为(在大多数情况下);参见PEP 442。

  • CPython 3.3自动将随机哈希盐应用到字典中

    str
    使用的键
    globals
    ;这使您观察到的行为更加随机,仅几次重新运行代码可能会或可能不会触发错误消息。



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

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

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