欢迎光临散文网 会员登陆 & 注册

Python模块

2020-05-25 08:19 作者:Iammyself001  | 我要投稿

Python 模块(Module),是一个Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

 

模块让你能够有逻辑地组织你的Python 代码段。

 

把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

 

1.导入模块的三种方法的区别

1)import导入

import support   # 导入模块,并不导入单个函数

 

 

 

# 现在可以调用模块里包含的函数了 ,但是必须通过模块名.函数名的方式调用

 

support.print_func("Runoob")

 

2)From … import导入

下面的语句可以将模块中的某一部分导入,它只会将里这个部分单个引入到执行这个声明的模块的全局符号表。这个部分可以是某个函数块,也可以是函数块的子函数块。

 

from modname import name1[, name2[, ... nameN]]

3)From … import * 导入

前两种语句都是导入模块的部分,只是部分导入的位置不同,而使用From …import*则是导入模块的全部项目,尽量少用,太耗内存。

 

2.命名空间和作用域

变量是拥有匹配对象的名字(标识符)。

 

命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。每个函数都会有自己的命名空间,当变量出现在函数内部时,Python默认其为局部变量,若存在一个与局部变量重名的全局变量,则由局部变量覆盖全局变量。

 

Python的命名空间分局部命名空间和全局命名空间。

 

3.找出模块中所有的模块名、函数名、变量名(dir()函数)

# 导入内置math模块

import math

content = dir(math)

print content;

 

以上实例输出结果:

 

['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan',

'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp',

'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log',

'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh',

'sqrt', 'tan', 'tanh']

在这里,特殊字符串变量__name__指向模块的名字,__file__指向该模块的导入文件名。

 

 

 

4.查看全局变量和局部变量命名空间

根据调用地方的不同,globals()和 locals()函数可被用来返回全局和局部命名空间里的名字。

 

如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。

 

如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。

 

两个函数的返回类型都是字典。所以名字们能用 keys() 函数摘取。

 

5. reload() 函数

当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。

 

因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数。该函数会重新导入之前导入过的模块。语法如下:在这里,module_name要直接放模块的名字,而不是一个字符串形式。

 

reload(module_name)


Python模块的评论 (共 条)

分享到微博请遵守国家法律