且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《像计算机科学家一样思考Python》——3.13 使用from导入模块

更新时间:2022-09-25 23:11:44

本节书摘来自异步社区《像计算机科学家一样思考Python》一书中的第3章,第3.13节,作者[美]Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.13 使用from导入模块

Python提供了两种导入模块的方式;我们已经见过其中一种:

>>> import math
>>> print math
<module 'math' (built-in)>
>>> print math.pi
3.14159265359

如果你导入math,则会得到名为math的模块对象。模块对象包含了pi这样的常量以及诸如sin和exp这样的函数。

但是如果直接访问pi,则会发生错误。

>>> print pi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'pi' is not defined

这时候,你可以像下面这样来导入模块中的某个对象:

>>> from math import pi

现在就可以直接访问pi,而不需要使用句点表示法math.pi了。

>>> print pi
3.14159265359

或者,也可以使用星号来导入一个模块的所有成员:

>>> from math import *
>>> cos(pi)
-1.0

用这种方式导入模块内所有的成员,好处是可以使你的代码更简洁,但缺点是不同模块的同名成员之间,或者和自定义的变量之间,可能发生名字冲突。