在一个模块中,我应该使用一个,两个还是没有下划线表示一个帮助函数,用户应该调用而不是?我应该用下划线开始一个辅助函数吗?
回答
PEP-8, the Python Style Guide,建议一个单引号下划线。
以下使用前导或尾随下划线被识别特殊形式(这些一般可以用任何情况下常规组合):
_single_leading_underscore
:弱“内部使用”指示器。例如。from M import *
不导入名称以下划线开头的对象。- ...
可能是一个单一的底线,但视情况而定。
具体而言,Python的设计指南(PEP 8)表示:
_single_leading_underscore:弱 “内部使用” 指示器。例如。从M import *不导入名称以下划线开头的对象。
__double_leading_underscore __double_leading_underscore:命名类属性时,调用名称修改(在类FooBar中,__boo变为_FooBar__boo;请参见下文)。
又见这个问题对一些更长的答案: What is the meaning of a single- and a double-underscore before an object name?
在模块中,双下划线会有什么特别的作用?与单下划线有什么不同? – MarJamRob 2013-05-02 21:49:44
是的,当它是班级的一部分时,它会触发名称修改。请参阅文档以获取完整说明:http://docs.python.org/2/tutorial/classes.html#private-variables-and-class-local-references – 2013-05-02 21:53:02
一般而言,您主要使用它来防止小类覆盖该方法。 – 2013-05-02 21:53:56
- 1. Python - 我应该使用下划线别名吗?
- 2. 我应该使用计算机辅助验证工具吗?
- 3. 我应该在会话cookie名称中包含下划线吗?
- 4. 我应该从Trac 0.12开始吗?
- 5. 我现在应该开始开发Facebook应用程序吗?
- 6. 我应该用1.8版本开始一个新的Django应用程序吗?
- 7. Magento - 调用辅助函数或扩展辅助类更有效吗?
- 8. 我应该开始使用核心数据吗?
- 9. 函数应该以“Get”开始?
- 10. 为什么每个辅助构造函数应该调用之前定义的构造函数之一?
- 11. 什么值应该代替“下划线”?
- 12. 我应该开始在一个不使用它的项目上使用TDD吗
- 13. 我应该在UI线程中调用`Service`的函数吗?
- 14. 如何在Url.Content辅助函数周围创建一个包装辅助器?
- 15. SQL Server始终打开 - 辅助索引
- 16. 我应该在我的项目中开始使用java7吗?
- 17. 我应该从哪一卷TAOCP开始?
- 18. 我们应该用AngularDart开始一个新的Angular项目(考虑Angular 2.0)吗?
- 19. 我应该使用MVC 2 RC开始一个新的ASP.Net MVC项目吗?
- 20. 函数应该调用吗?
- 21. 辅助函数鉴于
- 22. 蟒蛇:导入一个辅助函数在一个模块中
- 23. 在我的函数中用下划线过滤数组?
- 24. 如何用间隔调用辅助线程中的函数?
- 25. 我应该杀死一个以线程运行的函数(.Net)
- 26. 我应该测试一个Javascript插件的私有函数吗?
- 27. 我应该为lex函数创建一个头文件吗?
- 28. intellij函数参数带下划线
- 29. 如何将一个私有函数变成一个辅助函数?
- 30. 我们应该开源吗?
单,双下划线的良好描述在这里,http://stackoverflow.com/questions/1301346/the-meaning-of-a-双下划线之前的对象名称在Python中 – 2013-05-02 21:47:04