除使系统提供的内置模块以外,我们还能写个模块供的程序使。个py件就是个模
块,所以,定义模块很简单,基本上相当于创建个py件。但是,需要注意的是,如果个py件要作
为个模块被别的代码使,这个py件的名字定要遵守标识符的命名规则。
创建个模块常简单,安装标识符的命名规则创建个py件就是个模块。但是问题是,我们需要把创
建好的这个py件放在哪个位置,在代码中使 import 语才能找到这个模块呢?
Python内置sys模块的path属性,出程序运时查找模块的录,只需要把我们创建好的模块放到这些任
意的个录即可。
import sys
print(sys.path)
[
'C:\Users\chris\Desktop\Test',
'C:\Users\chris\AppData\Local\Programs\Python\Python37\python37.zip',
'C:\Users\chris\AppData\Local\Programs\Python\Python37\DLLs',
'C:\Users\chris\AppData\Local\Programs\Python\Python37\lib',
'C:\Users\chris\AppData\Local\Programs\Python\Python37',
'C:\Users\chris\AppData\Roaming\Python\Python37\site-packages',
'C:\Users\chris\AppData\Local\Programs\Python\Python37\lib\site-packages
'
]
使 from <模块名> import * 导个模块所有的内容时,本质上是去查找这个模块的 __all__
属性,将 __all__ 属性声明的所有内容导。如果这个模块没有设置 __all__ 属性,此时才会导
这个模块的所有内容。
模块以个下划线 _ 开始的变和函数,是模块的私有成员,当模块被导时,以 _ 开头的变默认
会被导。但是它具有强制性,如果个代码强使以 _ 开头的变,有时也可以。但是强建
议这样使,因为有可能会出问题。
test1.py:模块没有 __all__ 属性
定义模块
模块的查找径
__all__ 的使
模块的私有成员
总结
千锋Python人工智能学院
评论0