python3模块

1、类和函数的管理

如果只是少数的类或函数,可以将其写入到一个py文件中,相互之间直接使用即可。

但是,通常的项目往往涉及到非常多的类和函数,将其写入到一个py文件中是不适宜的,太过繁杂,且不便进行管理。

python中支持模块和包机制进行管理。

  • 模块:一个py文件即可称为一个模块,其中可以定义关系紧密的类和函数。
  • 包:py文件由可以由一层或多层文件夹进行组织管理,将这里的文件夹称之为包。

python中并不强调库。实际上,一般并不严格区分模块、包和库的定义,重点是掌握使用

2、导入

如果一个py文件中要使用其它py文件中声明的类或函数,则需要进行导入。

(1)import

import a.b
a.b.fun()
  • 直接使用import导入,必须是直接导入某py文件,而不能是某包。且使用时需要完整的py文件路径,比如是a.b而非b
import a.b as ab
ab.fun()
  • 使用as关键词,可以设置快捷名,以便使用

 (2)from ... import

from a import b
b.fun()
  •  用于导入指定py文件,如果有多个,可以用,分隔
from a.b import *
fun()
  •  导入某整个py文件

 3、导入事项

(1)一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

(2)搜索路径被存储在sys模块中的path变量,python解释器会据此进行查找import导入的包。

import sys
print(sys.path)

(3)如果同名的函数或类在不同的模块中声明,且被同时引入,如果是直接使用函数或类,则实际使用的是后声明的。可以通过包名和模块名进行区分

4、__name__属性

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

if __name__=='__main__':
  pass

5、dir函数
内置的函数 dir() 可以找到模块内定义的所有名称。
如果没有给定参数,那么 dir() 函数会罗列出当前定义的所有名称.

import sys
print(dir(sys))

6、标准模块

由python本身所提供的标准的模块

7、使用

实际上,并不建议直接使用import或者from import *。

一方面引入过多未使用的子模块是占用资源,另一方面多个模块这么声明,很容易造成命名冲突。

显示的报错冲突还好,就怕隐性的错用,在项目开发和测试过程中未发现,但上线后造成业务问题或安全问题。

更好的操作是:导入子模块,在代码中使用模块名.类名或函数名进行操作。或者导入具体的子模块中的类或函数。

 

posted @ 2023-05-28 09:39  挖洞404  阅读(24)  评论(0编辑  收藏  举报