RUN__IT # 导入模块时踩过的坑

本文深入探讨了Python中from模块import变量的导入机制,解释了变量指向的概念,以及在多模块开发环境中如何避免变量冲突和正确调用模块变量的方法。
要理解导入时,到底导入的是什么??

通过from 模块 import 变量,此时导入的是这个变量的指向,这个指向指的是模块中的数据,
如果在当前程序中改变这个变量,相当于重新赋值,也就是改变原来的指向,其实就是一个局部变量,
而原来模块中的变量值并没有改变。当再次在别的程序中导入时,导入的并不是修改过的值。
多模块开发时,建议通过使用import 模块名 的方式导入,然后通过 模块名.bian量名的方式去调用。

在这里插入图片描述

如果是import模块名,再修改时,模块名 . 变量名,模块名是指向那个程序,点–变量名则是模块中的变量,并非在本地修改
在这里插入图片描述

# # ================== 💡 简化版示例代码 ================== # # def load_and_run(module_name): # """ # 简单的动态导入演示 # # 根据传入的模块名字符串: # 1. 动态导入对应模块 # 2. 调用模块中的run()函数 # 3. 捕获处理常见错误 # # 示例模块结构: # - greetings/chinese.py # - greetings/english.py # 每个模块需包含run()函数 # """ # try: # # 动态导入模块 # """ # importlib.import_module("math") import math # importlib.import_module("pkg.math") from pkg import math # importlib.import_module("math", package="pkg") from pkg import math(主要用于相对导入# """ # # module = importlib.import_module(f"greetings.{module_name}") # # # 调用模块函数 # return module.run() # # except ImportError: # return f"错误:找不到模块 greetings/{module_name}.py" # except AttributeError: # return f"错误:模块 greetings/{module_name}.py 中没有定义 run() 函数" # # # # ================== 📦 示例模块 ================== # # 请创建以下目录结构: # # greetings/ # # ├── __init__.py # # ├── chinese.py # # └── english.py # # # greetings/chinese.py 内容: # # def run(): # # return "你好,世界!" # # # greetings/english.py 内容: # # def run(): # # return "Hello, World!" # # # # ================== 🔍 简化版演示 ================== # def run_demo(): # print("🧪 简化示例演示:") # # # 成功案例 - 中文问候 # print("加载中文模块:") # print(load_and_run("chinese")) # # # 成功案例 - 英文问候 # print("\n加载英文模块:") # print(load_and_run("english")) # # # 错误案例 - 不存在的模块 # print("\n加载不存在的模块:") # print(load_and_run("japanese")) # # # # ================== 📋 教学主流程 ================== # def run_lesson(): # # 理论讲解部分 # explain_dynamic_import() # print("=" * 50) # # when_to_use() # print("=" * 50) # # why_use_it() # print("=" * 50) # # how_to_use() # print("=" * 50) # # # 简化版演示 # run_demo() # # # # 启动教学流程(由外部控制调用) # run_lesson() #换个例子,不要用greeting 就用random吧
最新发布
08-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值