1.模块的定义
本质上就是.py结尾的python文件,用来从逻辑上组织python代码(变量,函数,类,逻辑),为了实现一个功能。
2.模块的调用方法
首先编写一个模块文件:
1 name=‘Tao‘ 2 3 def say(): 4 print(name) 5 6 def logger(): 7 print(‘logger‘) 8 9 def login(): 10 print(‘login‘)
方法一:import module1,module2
1 print(module_test.name) 2 module_test.say()
方法二:from ... import ...
1 from module_test import say 2 say() 3 4 from module_test import logger 5 logger() 6 7 from module_test import login 8 login()
from import 与import的区别(看import后面):
a.import module_test调用时需要加模块名前缀module_test.say()。
b.from module_test import say调用时直接say()不用加模块名前缀。
方法三:from ... import ... as ...
1 from module_test import login as login_tao #调用时更改函数名 2 login_tao()
3.调用模块的本质
a.import module_test的本质
将module_test内的所有代码解释一遍统一赋值给了module_test的变量,调用的时候加上module_test的前缀。
b.from module_test import login的本质
只找login这个函数的代码,相当于把module_test模块中的login代码解释赋值给了login调用时不用加模块前缀,直接调用。
4.包(package)
定义:用来从逻辑上组织模块的,放模块的,本质是一个目录(必须带有一个__init__.py文件)。
导入包的方法:import 包名。
导入包的本质:导入包的本质就是执行pack里面的__init__.py文件,即import 包名这行代码直接执行__init__.py文件。
5.当模块在不同级目录下时,模块的调用方法
a.调用同级文件中的module时直接from 文件名 import 模块名。
1 from pack import module_test 2 module_test.login()
b.直接加环境变量,将模块所在文件的地址加到sys.path中。
1 print(sys.path) 2 day5_DIR=os.path.dirname(os.path.abspath(__file__)) 3 pack_DIR=day5_DIR+‘\\‘+‘pack‘ 4 sys.path.append(pack_DIR) 5 print(sys.path) 6 7 import module_test 8 module_test.login()
目录结构:
原文地址:https://www.cnblogs.com/BIT-taozhen/p/9862375.html