def say(): print("人生苦短,我学Python!") def disPython(): print("小菠萝教程:https://www.cnblogs.com/poloyy/")
from demo import * say() disPython()
人生苦短,我学Python! 小菠萝教程:https://www.cnblogs.com/poloyy/
如果 demo.py 模块中的 disPython() 函数不想让其它文件引入,则只需将其名称改为 _disPython() 或者 __disPython()
再次执行 test.py,输出结果
人生苦短,我学Python! Traceback (most recent call last): File "C:/Users/polo/Desktop/2.py", line 4, in <module> disPython() NameError: name 'disPython' is not defined
test.py 文件中无法使用未引入的 disPython() 函数
def say(): print("人生苦短,我学Python!") def disPython(): print("小菠萝教程:https://www.cnblogs.com/poloyy/") __all__ = ["say"]
__all__ 变量只包含 say()的函数名,不包含 disPython() 函数的名称
from demo import * say() disPython()
人生苦短,我学Python! Traceback (most recent call last): File "C:/Users/mengma/Desktop/2.py", line 4, in <module> disPython() NameError: name 'disPython' is not defined
import 模块名 的形式导入模块,通过该方式导入模块后,总可以通过模块名前缀(如果为模块指定了别名,则可以使用模快的别名作为前缀)来调用模块内的所有成员(除了以下划线开头命名的成员)
def say(): print("人生苦短,我学Python!") def disPython(): print("小菠萝教程:https://www.cnblogs.com/poloyy/") __all__ = ["say"]
import demo demo.say() demo.disPython()
人生苦短,我学Python! 小菠萝教程:https://www.cnblogs.com/poloyy/
虽然 demo.py 模块中设置有 __all__ 变量,但是当以 import demo 的方式引入后,__all__ 变量将不起作用
from 模块名 import 对象成员 的形式直接导入指定成员,使用此方式导入的模块,__all__ 变量即便设置,也不起作用
仍然是上面的 demo 代码
from demo import say from demo import disPython say() disPython()
人生苦短,我学Python! 小菠萝教程:https://www.cnblogs.com/poloyy/