1.6 标准库与扩展库中对象的导入与使用

 

1.6 标准库与扩展库中对象的导入与使用

Python默认安装仅包含基本或核心模块,启动时也仅加载了基本模块,需要时再显式地导入和加载标准库和第三方扩展库。这样的设计减小了程序运行的压力,并具有很强的可扩展性。从“木桶原理”的角度来看,这种设计与安全配置时遵循的“最小权限”原则一致,有助于提高系统的安全性。

1.6.1 import 模块名 [as 别名]

使用这种方式导入模块后,使用模块中的对象时需要在对象之前加上模块名作为前缀,必须以“模块名.对象名”的形式访问。如果模块名字很长,可以为导入的模块设置一个别名,然后使用“别名.对象名”的方式来使用其中的对象。以下是一些示例:

>>> import math
>>> math.sin(0.5)
0.479425538604203

>>> import random
>>> n = random.random()
>>> n = random.randint(1, 100)
>>> n = random.randrange(1, 100)

>>> import os.path as path
>>> path.isfile(r'C:\windows\notepad.exe')
True

>>> import numpy as np
>>> a = np.array([1, 2, 3, 4])
>>> print(a)
array([1, 2, 3, 4])

在上述代码中:

  • import math 导入了标准库math,并使用math.sin计算0.5(弧度)的正弦值。
  • import random 导入了标准库random,并生成随机数。
  • import os.path as path 导入标准库os.path并设置别名为path,然后检查文件是否存在。
  • import numpy as np 导入扩展库numpy并设置别名为np,然后创建并打印一个数组。

1.6.2 from 模块名 import 对象名 [as 别名]

这种方式仅导入明确指定的对象,可以为导入的对象设置别名。这种导入方式减少查询次数,提高访问速度,减小打包后的文件大小,同时减少程序员需要输入的代码量,无需使用模块名作为前缀。以下是一些示例:

>>> from math import sin
>>> sin(3)
0.1411200080598672

>>> from math import sin as f
>>> f(3)
0.1411200080598672

>>> from os.path import isfile
>>> isfile(r'C:\windows\notepad.exe')
True

在上述代码中:

  • from math import sin 只导入了math模块中的`sinf函数。
  • from math import sin as f 为导入的sin函数设置别名为f
  • from os.path import isfile 只导入了os.path模块中的isfile函数,用于测试给定路径是否为文件。

1.6.3 from 模块名 import *

这是上面用法的一种极端情况,可以一次导入模块中通过__all__变量指定的所有对象。以下是一些示例:

>>> from math import *
>>> gcd(36, 18)
18
>>> pi
3.141592653589793
>>> e
2.718281828459045
>>> log2(8)
3.0
>>> log10(100)
2.0
>>> radians(180)
3.141592653589793

在上述代码中:

  • from math import * 导入了math模块中的所有对象。
  • 使用了gcd计算最大公约数、常数pi、常数e、以2为底的对数log2、以10为底的对数log10和将角度转换为弧度的radians函数。

这种方式虽然简单粗暴,写起来省事,可以直接使用模块中的所有对象而不需要再使用模块名作为前缀。但一般不推荐这样使用,因为会降低代码的可读性,有时难以区分自定义函数和从模块中导入的函数。此外,这种导入方式将导致命名空间的混乱,如果多个模块中有同名的对象,只有最后一个导入的模块中的对象有效,之前导入的模块中的同名对象将无法访问,不利于代码的理解和维护。

 

 

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值