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

Python中的“ public”或“ private”属性?什么是最好的方法?

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

Python中的“ public”或“ private”属性?什么是最好的方法?

通常,Python代码会努力遵守统一访问原则。具体来说,公认的方法是:

  • 直接公开您的实例变量,例如允许,而
    foo.x = 0
    不是
    foo.set_x(0)
  • 如果出于任何原因需要将访问包装在方法内部,请使用
    @property
    ,以保留访问语义。即,
    foo.x = 0
    现在调用
    foo.set_x(0)

这种方法的主要优点是调用者可以执行以下操作:

foo.x += 1

即使代码可能确实在做:

foo.set_x(foo.get_x() + 1)

第一条语句无限地可读。但是,有了属性,您可以(在开始或以后)添加使用第二种方法获得的访问控制。

同样要注意,以单个下划线开头的实例变量 通常也是
私有的。也就是说,下划线向其他开发人员发出信号,表示您认为该值是私有的,他们不应直接与之混淆。但是,该语言中的任何内容都不能 阻止
他们直接对其进行弄乱。

如果使用双引号下划线(例如

__x
),Python会对名称进行一些混淆。但是,仍然可以通过混淆的名称从类外部访问该变量。它不是真正的私人。只是有点…更不透明。还有反对使用双下划线的有效论点。一方面,它会使调试更加困难。



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

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

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