from ... import ... 什么的我就不写了= =
模块的 __name__
每个模块都有一个名称,模块中的语句可以找到它们所处的模块的名称。当模块第一次被导入时,它所包含的代码将被执行。我们可以通过这一特性来使模块以不同的方式运行,这取决于它是为自己所用还是从其它的模块导入而来。这款有通过模块的 __name__ 属性来实现。
if __name__ == "__main__":
print("This program is being run by itself")
else:
print("I am being imported from another module")
运行结果:
每一个Python模块都定义了它的__name__属性。
如果它与__main__属性相同则代表这一模块是由用户独立运行的。
编写自己的模块
案例(保存为 mymodule.py ):
def say_hi():
print("Hi, this is mymodule")
__version__ = '0.1'
在相同目录下用另一个Python程序使用这个模块。
import mymodule
mymodule.say_hi()
print("Version", mymodule.__version__)
运行结果:
下面是一个使用 from...import 语法的范本:
from mymodule import say_hi, __version__
say_hi()
print("Version", __version__)
运行结果同上。
from mymodule import * 将导入诸如say_hi等所有公共名称,但不会导入__version__名称,因为后者以双下划线开头。所以要尽量避免from mymodule import ... 这种形式。