天天看点

python学习--模块和包

模块是python程序架构的核心概念
  • 模块
    • 模块的命名遵守标识符原则(注意不要和系统模块重名)
    • 每一个以.py结尾的文件都是一个模块
    • 在模块内的全局变量、函数、类可以直接提供给外界使用
  • 语法

    import导入

import 模块名1, 模块名2 
           
注意虽然上边的也行,但是在PEP8规范中要求在导入模块时,每个导入应该独占一行
import 模块名1
import 模块名2 
           
  • 导入之后

    导入之后可以通过

    模块名.

    来使用导入模块中的全局变量、函数。

    如果模块名太长可以使用

    as

    对代码块重新命名
    • 语法
import 模块名1 as 模块别名
           

这里需要说的是模块别名使用大驼峰命名法

  • from…import导入

    语法

#从 模块 导入 某一个工具
from 模块名1 import 工具名
           

注意

import

是将模块下的工具全部导入,而

from...import

则是导入指定的模块工具

并且使用时直接使用工具名就行

  • 用form…import导入所有工具

    只需要加一个通配符

    *

#从 模块 导入 所有工具
from 模块名1 import *
           
注意 当导入两个不同模块导入同名函数时,后导入的会将先导入的覆盖 所以这时候可以用

as

将函数重命名一下。
  • __name__

    属性

    我们知道在导入模块时,只要没有缩进的代码,都会被执行一遍。这个是极不方便的–>因为在正常开发时同一个模块我们正常要写很多的测试代码。这些代码在导入时是不希望被执行的。

因此就用到了

__name__

属性,我们知道如果在当前本模块它是返回一个固定的字符串–>

__main__

,而在导入的文件中,返回的是导入文件的地址。

因此在开发时,我们经常见到下面的代码

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

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

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

这样在导入的时候,测试代码就不会执行了。