模块module
定义:
模块:用来从逻辑上组织python代码(变量,函数,类,逻辑),本就就是.py结尾的python文件,(文件名:test.py)
用来逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件)
比如:一个.py的文件即一个模块,对于一个模块test有如下定义:
模块的文件名:test.py
模块名:test
模块导入:import test
导入方法一:
比如现在有两个.py文件。其中一个是模块,module_zaizai其中的代码是这样子的:
name='zaizai'
def say_hello():
print('hello zaizai')
其实这就是一个模块,这个模块中定义了一个变量以及一个函数,分别是name,say_hello。因此我们在其他.py文件下可以调用这个模块。
另一个.py文件是:
import module_zaizai 这一步其实是相当于把module_zaizai这个文件给调用过来了,所以调用其里面的变量和函数的时候我们一般,module_zaizai.变量,module_zaizai.函数名()。
导入方法二:导入多个模块
import module_name1,module_name2
导入方法三:
from module_zaizai import* 导入module_zaizai里面的所有变量函数,但是不建议这么使用,因为其实这个方法的作用其实是相当于把module_zaizai里面的所有代码,复制到了from module_zaizai import*的下面,当想调用模块里的函数的时候,直接say_hello()就可以了。所以当模块里面函数的名字跟该.py文件里面本来的名字一样时,因为python文件是逐行解释的,所以下面的会覆盖上面的,所以不要用。
这个方法其实是导入了模块里的所有代码,所以当你写module_zaizai.函数名(),的时候,其会显示未定义。
导入方法四:
from module_zaizai import logger as logger_zaizai
这样就能避免重名的情况。这个时候,logger_zaizai()相当于运行module_zaizai里面的logger,其实就是相当于把模块里重名的函数名重新定义了一个不重名的名字。
导入方法五:
from module_zaizai import name
这句代码等价于:
name='zaizai'