大家好我是黑客之家小编,黑客之家头条号 分享黑客技术,编程知识,科技资讯 喜欢的朋友可以关注我的头条号! 人生苦短,我用Python! Python3教程 前面几篇文章介绍了 Python3文件处理操作 Python3基础输入和输出 ,本篇文章介绍下python的模块相关知识。 python模块是一个包含所有定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能,这也是使用 python 标准库的方法。 下面是一个使用 python 标准库中模块的例子。(File:ModuleTest.py) 执行结果如下所示: python3 ModuleTest.py test
import 语句 想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下: import module1[, module2[,... moduleN] 当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。 搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端: support.py文件代码为: test.py引入support模块: import support support.print_func('Helllo') 一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。搜索路径是在Python编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在sys模块中的path变量,做一个简单的实验,在交互式解释器中,输入以下代码: sys.path 输出是一个列表,其中第一项是空串'',代表当前目录(若是从一个脚本中打印出来的话,可以更清楚地看出是哪个目录),亦即我们执行python解释器的目录(对于脚本的话就是运行的脚本所在的目录)。因此若像我一样在当前目录下存在与要引入模块同名的文件,就会把要引入的模块屏蔽掉。了解了搜索路径的概念,就可以在脚本中修改sys.path来引入一些不在搜索路径中的模块。 from…import 语句 Python的from语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下: from modname import name1[, name2[, ... nameN]] 例如,要导入模块 fibo 的 fib 函数,使用如下语句: >>> from fibo import fib, fib2>>> fib(500)1 1 2 3 5 8 13 21 34 55 89 144 233 377 这个声明不会把整个fibo模块导入到当前的命名空间中,它只会将fibo里的fib函数引入进来。 From…import* 语句 把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。 深入模块 模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。这些代码只有在第一次被导入时才会被执行。每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用。所以,模块的作者可以放心大胆的在模块内部使用这些全局变量,而不用担心把其他用户的全局变量搞花。从另一个方面,当你确实知道你在做什么的话,你也可以通过 modname.itemname 这样的表示法来访问模块内的函数。模块是可以导入其他模块的。在一个模块(或者脚本,或者其他地方)的最前面使用 import 来导入一个模块,当然这只是一个惯例,而不是强制的。被导入的模块的名称将被放入当前操作的模块的符号表中。 __name__属性 一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。 说明: 每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。 python模块就介绍到这里! 如果您喜欢这篇文章可以点赞,关注,转发!更多黑客技术,编程知识,科技资讯请点击关注按钮! |
|
来自: 庆亮trj21bcn0z > 《编程》