1、基本概念
Python中每⼀个⽂件都是⼀个模块;模块也是对象;
from 与 import 的异同:
from A import a1 是从A模块导入a1工具(可以是某个 函数,全局变量,类),程序进行的修改不会影响到被导入的原模块,且不同程序之间不会互相影响,import A是导入整个A模块的全部内容(包括全部的函数,全局变量,类),程序之间会互相影响,包括原模块。
当多个程序需要同时导入一个模块并且都是访问时,使用import 可以节省内存空间
当多个程序需要同时导入一个模块当其中一个需要修改模块,那么修改的模块的程序应该使用from来导入模块
--------------------------
#文件model里的内容
title = '这是模块model'
def run():
print(title)
--------------------------
#文件demo_1里的内容
import model
model.title = '这是demo_1'
print(model.title)
model.run()
输出结果:
这是demo_1
这是demo_1
--------------------------
#文件demo_2里的内容
from model import run,title
title = '这是demo_1'
print(title)
run()
输出结果:
这是demo_1
这是模块model
reload函数
Python中的import语句可以导入module文件,但是import语句只是第一次导入的时候会执行module文件中的代码,然后就会把导入的模块文件存入到内存,当再次导入的时候,Python是直接从内存里面取出module文件,而不会执行module文件的内容了,而reload函数强制Python重新导入并执行module文件。
参考:https://blog.csdn.net/youhuakongzhi/article/details/85255502,写的非常详细,
2、模块搜索路径
程序所在目录
标准库安装路径
操作系统环境变量PYTHONPATH所指向的路径
3、模块包
⼀种带有特殊__init__.py(可以为空)⽂件的Python模块的⽂件⽬录
4、私有变量
在Python中,有以下几种方式来定义变量:
xx:公有变量
_xx:单前置下划线,私有化属性或方法,类对象和子类可以访问,from somemodule import *禁止导入
__xx:双前置下划线,私有化属性或方法,无法在外部直接访问(名字重整所以访问不到)
__xx__:双前后下划线,系统定义名字(不要自己发明这样的名字)
xx_:单后置下划线,用于避免与Python关键词的冲突
5、__name__和__main__
文件作为模块进行导入,并独立程序运行
6、外部模块包
pip python3默认安装
默认用法:sudo pip install <导入模块包名称>
相关网址:https://pypi.org/