python学习——模块

  • 模块是python程序架构中的一个核心概念。每个以扩展名.py结尾的python源代码文件都是一个模块,使用模块前需要导入,即import这个模块。
  • 模块名也是一个标识符
  • 可以由数字,下划线,字母组成,单不能以数字开头,不能和关键字重名,以数字开头的文件名是没有办法导入这个模块。

1 .模块的两种导入方法

import 模块1,模块2

import 模块1

import 模块2

2. import导入时起别名

有时我们的模块名很长并不方便调用,这时我们就可以通过as来给模块起别名。

 import 模块1 as 别名

注:import是一次性全部导入所有工具,需要通过模块名/别名访问使用

3. from...import导入

        通过from... import导入的模块,可直接使用。

        3.1 from ...import局部导入

                有时我们只需要某个模块的一些工具(全局变量,函数,类),这时我们就可以使用from...import导入

from 模块名 import 工具名
#从某个模块导入所需工具

         3.2 from...import导入同名工具

         python导入两个模块中,存在相同名的函数,此时后导入的会覆盖先导入的函数。此时可以通过as来给其中一个来取别名

from zj_input import itin  
from zj_output import itin

#取别名
from zj_input import itin as modify itin

        如上述zj_input ,zj_output两模块中都有相同函数名的函数itin(),此时通过as给第一个模块的itin取别名,就能避免覆盖的问题。

        3.3 from...import导入所有工具(不推荐)

     from  模块  import  工具名*

注:from...import导入所有工具这种方法并不推荐,因为当出现函数重名的时候不好排查错误

4._name_属性

_name_属性兼顾测试和导入两种模式,测试模块的代码只有在测试情况下执行,而在导入的时候不会被执行。当在自身模块执行时_name_就是_main_,而在模块被导入时_name_就是模块名。

在很多python文件中都会有以下格式的代码:

#导入模块
#定义全局变量
#定义类
#定义函数

#在代码最下方
def main():

#根据_name_判断是否执行下方代码
if _name_ == "_main_":
    main()
 

这样就保证了一个编写原则——每一个文件都应该是可以被导入的。

你可能感兴趣的:(python学习,学习,python)