from xx import xxx 和 import xxx
from A import a:为从A模块导入a(函数,全局变量,类);在内存中创建副本,与其它导入相同模块的不共用
import A:导入A模块的全部内容;会在内存中直接加载该模块的全部属性。当出现多个程序导入该模块时,会共用一个模块,程序之间会互相影响,包括原模块。
例
#A.py data=[1,2,3] def run(): print(data)
通过from import 导入
#b.py from A import run, data data[0]=5 #类似赋值,b里面的data和A里面的data指向同一个对象,这么做对两者都有影响 print(data) run() data=100 #由于直接改变了data的指向,所以不会影响源模块A print(data) run()
output:
[5,2,3]
[5,2,3]
100
[5,2,3]
通过import导入
#c.py import A #由于是直接import a 所以都是从源模块a里面拿出来的,所以这里的改变都会影响源模块a.可以理解为有着作用域 a.的限制 A.data[0]=5 print(A.data) A.run() A.data=100 #因为这里影响的是a里面的data print(A.data) A.run()
output:
[5,2,3]
[5,2,3]
100
100
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?