为了账号安全,请及时绑定邮箱和手机立即绑定

Python名称损坏

Python名称损坏

qq_遁去的一_1 2019-07-02 10:26:04
Python名称损坏在其他语言中,帮助生成更好代码的一般指导方针总是尽可能隐藏一切。如果对变量是否应该是私有变量还是受保护变量有疑问,最好使用私有变量。Python也是如此吗?一开始,我是否应该在每件事情上使用两个前导下划线,并使它们在我需要时更少隐藏(只有一个下划线)?如果约定只使用一个下划线,我也想知道理由。以下是我留下的评论JBernardo的回答..它解释了为什么我问这个问题,也解释了为什么Python不同于其他语言:我来自于一些语言,这些语言训练你认为一切都应该是必要的公开的,而不再是公开的。其理由是,这将减少依赖,并使代码更安全地进行修改。Python的反向处理方式-从公开开始,走向隐藏-对我来说很奇怪。
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

我不会说实践会产生更好的代码。可见性修饰符只会分散您对手头任务的注意力,并且作为副作用迫使您的界面按您的意愿使用。一般来说,强制使用可见性可以防止程序员在没有正确阅读文档的情况下把事情搞砸。

一个更好的解决方案是Python鼓励的路线:您的类和变量应该有很好的文档化,并且它们的行为应该清楚。应该有消息来源。这是一种更可扩展和更可靠的编写代码的方法。

我在Python中的策略是:

  1. 只需写上那该死的东西,不要假设你的数据应该如何被保护。这假设您编写是为了为您的问题创建理想的接口。
  2. 对以下内容使用前导下划线

    可能

    不会在外部使用,也不是正常的“客户端代码”接口的一部分。
  3. 只对类内纯粹方便的东西使用双下划线,如果意外暴露会造成相当大的损害。

最重要的是,一切都应该清楚。如果其他人会使用它,就把它记录下来。如果你想让它在一年的时间里有用的话,就把它记录下来。

顺便说一句,你实际上应该受保护在这些其他语言中:您永远不知道您的类以后可能会被继承,并且可能会被使用。最好只保护那些您确信不能或不应该被外部代码使用的变量。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 471 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信