单下划线”_”
Python中,通过单下划线“_”
来实现模块级别的私有化,变量除外。约定以单下划线“_”
开头的函数为模块私有的,也就是说“from moduleName import * ”将不会引入以单下划线”_“
开头的函数。
例子
现在有一个模块 exampleexample.py,内容用如下,模块中一个变量名和一个函数名分别以“”开头:
name = 'bruce'
_tall = 180
def call_for():
print("execute call_for()")
print('name is :',name)
print('_tall is',_tall)
def _call_for():
print("execute _call_for()")
print('name is :',name)
#_call_for = _call_for()
print('_tall is',_tall)
- 调用脚本模块 example_example
from example_example import *
#调用不带下划线函数
call_for()
#调用不带下划线函数会报错
_call_for()
- Output:
_tall is 180
execute call_for()
name is : bruce
_tall is 180
Traceback (most recent call last):
File "xxx.py", line 6, in <module>
_call_for()
NameError: name '_call_for' is not defined