Python 模块

1、模块(Module)

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

模块能够让你更有逻辑组织你的代码段

模块能定义函数、类和变量,模块里也能包含可执行的代码

模块 support.py

def print_func( par ):

  print "Hello :", par

  return

2、import 语句

模块定义后,可以使用import语句引入模块

import support

support.print_func("7890")

输出结果:  Hello :7890

一个模块只会被导入一次,不管你执行多少次import。

3、form...import 语句

Python的from语句让你从模块中导入一个指定的部分到当前命名空间中

from support import print_func

print_func("7890")

输出结果: Hello :7890

from...import * 语句 把一个模块的所有内容全部导入到当前的命名空间

4、命名空间

定义:名称到对象的映射。命名空间是一个字典的实现,键为变量名,值是变量对应的值。各个命名空间是独立没有关系的,一个命名空间中不能有重名,但是不同的命名空间可以重名而没有任何影响

local 局部命名空间,每个函数所拥有的命名空间,记录了函数中定义的所有变量,包括函数的入参、内部定义的局部变量

global 全局命名空间,每个模块加载所执行时创建,记录了模块中定义的变量,包括模块中定义的函数、类、其他导入的模块、模块级的函数和常量

built-in python自带的内建命名空间,任何模块均可以访问,放着内置的函数和异常

生命周期

local 在函数被调用时才被创建,但函数返回结果或抛出异常时被删除。(每一个递归函数都拥有自己的命名空间)

global 在模块被加载时创建,通常一直保留直到python解释器退出

built-in 在python解释器启动时创建,一直保留直到解释器退出

各命名空间创建顺序:python解释器启动-> 创建内建函数命名空间 -> 加载模块 -> 创建全局命名空间 -> 函数被调用 -> 创建局部命名空间

命名空间销毁顺序:函数调用结束 -> 销毁函数对应的局部命名空间 -> python虚拟机(解释器)退出 -> 销毁全局命名空间 -> 销毁内建命名空间

python 解释器加载阶段创建出内建命名空间、模块的全局命名空间,局部命名空间是在运行阶段函数被调用时动态创建出来的,函数调用结束动态销毁。

5、作用域

作用域是针对变量而言,指申明的变量在程序里的可应用范围。或者称为变量的可见性。

只有函数、类、模块会产生作用域,代码块不会产生作用域

Local 局部作用域

Enclosing (嵌套函数的外层函数内部)嵌套作用域(闭包)

Global 全局作用域

Built-in 内建作用域

原文地址:https://www.cnblogs.com/chenyanliang/p/9947168.html