模块(Modules),可以理解为是对代码更高级的封装,即把能够实现某一特定功能的代码编写在同一个文件中,其后缀名是.py。并将其作为一个独立的模块,这样既可以方便其它程序或脚本导入并使用,同时还能有效避免函数名和变量名发生冲突。
语法:import 模块名 as 别名
from 模块名 import 成员名 as 别名
#导入sys模块的argv,winver成员
from sys import argv, winver
from 模块名 import *
#导入sys 棋块内的所有成员
from sys import *
import MyMod1
__name__属性 一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
if __name__ == '__main__':
print('程序自身在运行')
speak()
else:
print('我来自另一模块')
__all__变量 模块提供的 all 变量,该变量的值是一个列表,存储的是当前模块中一些成员(变量、函数或者类)的名称。即其他文件只能导入该变量指定的成员,未指定的成员是无法导入的。
__all__ = ["speak", "Class1"]
包 包是一个包含多个模块的文件夹,它的本质依然是模块,只不过在该文件夹下存在一个名为“init.py” 的文件
个 init.py 的模块,可以是一个空模块,可以写一些初始化代码,其作用就是告诉 Python 要将该目录当成包来处理。
import 包名[.模块名 [as 别名]]
在使用模块中的成员(变量、函数、类)时,需添加“包名.模块名”为前缀。
import demo.Animal
demo.Animal.speak()
from 包名 import 模块名 [as 别名]
在使用其成员时不需要带包名前缀,但需要带模块名前缀。
from demo import Animal
Animal.speak()
from 包名.模块名 import 成员名 [as 别名]
```bash
from demo.Animal import Animal
obs=Animal('shi')
obs.speak()
import demo.Animal
print(demo.__file__)
print(dir(demo.Animal))
print(help(str.lower))
参考:
https://blog.csdn.net/liuqinhou/article/details/129940672
https://blog.csdn.net/weixin_42405670/article/details/130856967