python模块
发布时间:2018-07-30 17:12:13作者:wangjian浏览量:523点赞量:0
模块:
将定义的一些方法变量等存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块
例:
#!/usr/bin/python3 # 文件名: using_sys.py import sys print('命令行参数如下:') for i in sys.argv: print(i) print('\n\nPython 路径为:', sys.path, '\n')
执行结果如下所示:
$ python using_sys.py 参数1 参数2 命令行参数如下: using_sys.py 参数1 参数2
Python 路径为: ['/root', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
1、import sys 引入 python 标准库中的 sys.py 模块;这是引入某一模块的方法。
2、sys.argv 是一个包含命令行参数的列表。
3、sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。
import语句
例:
support.py 文件代码
#!/usr/bin/python3 # Filename: support.py def print_func( par ): print ("Hello : ", par) return
test.py 文件代码(test.py 引入 support 模块)
#!/usr/bin/python3 # Filename: test.py # 导入模块 import support # 现在可以调用模块里包含的函数了 support.print_func("Runoob")
以上实例输出结果:
$ python3 test.py Hello : Runoob
from … import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法结构如下:
from modname import name1[, name2[, ... nameN]]
这个声明不会把整个模块导入到当前的命名空间中,它只会将指定模块里的指定函数引入进来
from … import * 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:
from modname import *
这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。
__name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
#!/usr/bin/python3 # Filename: using_name.py if __name__ == '__main__': print('程序自身在运行') else: print('我来自另一模块')
运行输出如下:
$ python using_name.py 程序自身在运行
$ python >>> import using_name 我来自另一模块 >>>
说明: 每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。
说明:__name__ 与 __main__ 底下是双下划线, _ _ 是这样去掉中间的那个空格。
dir()函数
内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回:
>>> a = [1, 2, 3, 4, 5] >>> import fibo >>> fib = fibo.fib >>> dir() # 得到一个当前模块中定义的属性列表 ['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys'] >>> a = 5 # 建立一个新的变量 'a' >>> dir() ['__builtins__', '__doc__', '__name__', 'a', 'sys'] >>> >>> del a # 删除变量名a >>> >>> dir() ['__builtins__', '__doc__', '__name__', 'sys'] >>>
上一篇:python输入输出
下一篇:python数据结构