19 导入模块成员冲突 总结
成员和冲突
#如果导入的方法存在冲突时,进行取别名
import db as d1
from utils.db import db as d2
#也支持下面的方法导入
from utils.db import x1,x3,x3
from utils.db import * #此方式不推荐
def run():
d1.f1()
d1.f2()
d2.xxx()
if __name__ == "__main__":
run()
导入方法时,建议导入到模块级别,这样查找方法也好找一些
from utils.net import db 这种方式也可以,只是调用方法时,需要使用db.x1进行调用
小结
- 模块 ,本质就是一个py文件或者文件夹
- 导入模块时根据sys.path路径寻找相关名称
脚本的所有目录
安装目录
安装目录/site-pagckages
-
- 主动添加
import sys
sys.path.appedn('.....')
- pycharm自动将项目根目录添加到sys.path里面
- 导入
#用于同级目录导入
import xxx
#适应于不同文件夹下模块导入
from xxx import xxxx
- 主文件
#主文件标志 ,一般代码都写在def run() 里面
def run():
pass
if __name__ == '__main__':
run()
- 导入模块时,冲突命名
from xxx import xxx as xxx
- 导入成员
#将模块内的多个方法同时导入
from xxx import x,x,x,
- 注意事项:千万不要让自己创建的py文件与内置模块同名
radom/re/datatime/xml/configparse/....