import导入和from导入

本文详细介绍了Python中import和from...import语句的不同用法及注意事项,包括如何区分可变类型和不可变类型的变量共享,以及在开发实践中推荐的导入方式。
1.import导入和from导入
1.import导入和from导入可变类型和不可变类型有着本质的区别
2.import是用来导入模块,from是用来导入模块中的对象
3.from导入和import导入 当指向的变量是可变类型的话,可以共享全局变量,如果是不可变
类型,from导入就无法全局共享全局变量
4.import common:在当前模块下定义了全局common,common变量指向了common模块,访问
common模块的变量:common.xx
5.from common import handle:在当前模块定义了全局变量handle,这个全局
变量会使用到commmom.handle的值,此时有两个完全不一样的handle
6.在实际开发中尽量使用from xx import mm 来进行精准的导入,少使用import * 这种比较
粗狂的方式导入,因为这样导入会造成模块臃肿(自己定义的变量和导入的模块的变量重名,自己
定义的会覆盖模块中导入的,也就是后者覆盖前者的逻辑顺序)
7.当需要导入一个全局都会使用到的模块的时候,就使用import导入即可
8.常用的系统模块都是直接使用import导入即可
### 正确使用 Python `from ... import` 语句 在 Python 中,模块导入是一种常见的操作方式。为了保持代码的可读性维护性,推荐遵循一定的规范来使用 `from ... import` 语句。 #### 避免通配符导入 不建议使用通配符进行模块导入,例如 `from module_name import *`。这种做法会污染命名空间并可能导致意外覆盖变量名的情况发生[^1]。相反,应该明确指定要导入的具体对象: ```python # 不推荐的方式 from math import * # 推荐的方式 from math import sqrt, pi ``` 通过上述方法可以清晰表明哪些名称被引入当前作用域内,从而提高程序透明度调试便利性。 #### 导入特定函数或类 当只需要某个模块中的部分功能时,可以通过 `from ... import` 来单独加载这些组件: ```python from datetime import date, timedelta today = date.today() yesterday = today - timedelta(days=1) ``` 这里只从datetime库中选取了date与timedelta两个成员用于日期处理运算. #### IronPython 特殊情况下的行为说明 对于某些特殊环境如IronPython,在执行标准字符串方法的同时还可以调用CLR相关特性而不互相干扰[^2]: ```python import clr clr.AddReference('System.Windows.Forms') from System.Drawing import Point p = Point(0, 0) str_p = str(p).upper() # 使用的是常规Python string method upper(). ``` 此例子展示了即使是在集成.NET框架的情况下,原始Python的方法依旧能够正常运作. #### 结合第三方库的例子 如果项目依赖于外部包比如NumPy,则同样适用以上原则来进行精确控制所需资源: ```python evaluations = numpy.array([forward_solver(coordinates, sample)]) result_mean = evaluations.mean(axis=0) ``` 在此处我们仅取出了array以及后续可能使用的mean方法而不是整个numpy体系结构[^3]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值