考虑以下模式:
'''some module body'''
def __foo():
'''module method foo'''
pass
class Dummy(object):
@staticmethod
def bar():
__foo()
__foo() # No Error.
Dummy.bar() #NameError: Global name "_Dummy__foo" is not defined.
为什么会这样?你知道吗
---
如果用“\来命名是不好的,那么Python中使模块方法只对内部模块函数/方法可用的最佳实践是什么?你知道吗
名字开头不要用双下划线。在class语句中找到的任何标识符,至少以2个下划线开始,少于2个下划线结束,都会在其前面加上
_Classname
,其中Classname
是类的名称。这应该为私有ish变量提供有限的支持,但是使用它通常被认为是不好的做法。你知道吗相关问题 更多 >
编程相关推荐