第七章---模块
目录:
(0)介绍
(1)import 语句
(2)from … import 语句
(3)from … import * 语句
(4)__name__属性
(5)dir() 函数
(6)包
正文:
(0)介绍
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。
(1)import 语句
想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下: import module1[, module2[,... moduleN]
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。 搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端:
support.py 文件代码 #!/usr/bin/python3 # Filename: support.py def print_func( par ): print ("Hello : ", par) return #test.py 引入 support 模块: #test.py 文件代码 #!/usr/bin/python3 # Filename: test.py # 导入模块 import support # 现在可以调用模块里包含的函数了 support.print_func("Runoob")
以上实例输出结果: $ python3 test.py Hello : Runoob
(2)from … import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下: from modname import name1[, name2[, ... nameN]]
(3)from … import * 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明: from modname import *
(4)__name__属性
说明: 每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。
说明:__name__ 与 __main__ 底下是双下划线, _ _ 是这样去掉中间的那个空格。
(A)建ballad.py文件,然后运行,结果如下:
运行结果:
运行结果:(一样)
(B)然后新建一个tongueTwister.py,并且运行,结果如下:
结果如下:
如果(B)中ballad.py文件为:
则结果为:(我们需求的)
总结:
如果ballad.py文件(扩展到其他脚本都一样的),点运行,则print( __name__)为'__main__'。如果tongueTwister.py脚本点运行,则在ballad.py文件的print( __name__)结果为
ballad,(或tongueTwister.py加上print( ballad.__name__)结果为ballad)。
所以,这样做可以防止被调用模块执行不必要执行的函数。
(5)dir() 函数
内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回: >>> import fibo, sys >>> dir(fibo) ['__name__', 'fib', 'fib2']
(6)包
参考:https://www.runoob.com/python3/python3-module.html