当前位置: 首页 > news >正文

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

本节书摘来自异步社区《像计算机科学家一样思考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

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

相关文章:

  • 《MySQL DBA修炼之道》——1.2MySQL 的基础架构和版本
  • 定制并发类(七)实现ThreadFactory接口生成自定义的线程给Fork/Join框架
  • 《Python游戏编程快速上手》——2.2 计算表达式
  • 《Adobe Flash CS4中文版经典教程》——1.9 预览影片
  • 运营前线2:一线运营专家的运营方法、技巧与实践02 内容运营,取标题的这6招你得会...
  • 《Swift入门经典(第2版)》——第2章 学习Swift的基本数据类型 2.1Swift中的常量...
  • 互联网世界的“人工智能”——探秘“深度学习”的前世今生
  • GOOGLE招聘之行为准则
  • 中国信通院重磅发布大数据关键技术专利态势报告(全文38页下载)
  • Linux学习134 Unit 7
  • python3的文件读取问题
  • 团队视频内容和链接
  • 新生入学V3.0颗粒归仓
  • LVM故障导致RHCS启动故障
  • Java中套接字的理解
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • [微信小程序] 使用ES6特性Class后出现编译异常
  •  D - 粉碎叛乱F - 其他起义
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java读取Properties文件的六种方法
  • js学习笔记
  • Linux CTF 逆向入门
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Material Design
  • webpack4 一点通
  • 笨办法学C 练习34:动态数组
  • 构造函数(constructor)与原型链(prototype)关系
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 区块链技术特点之去中心化特性
  • 软件开发学习的5大技巧,你知道吗?
  • 使用 @font-face
  • 使用agvtool更改app version/build
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 怎么把视频里的音乐提取出来
  • 自定义函数
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #{}和${}的区别?
  • (七)c52学习之旅-中断
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)iOS字体
  • .NET MVC第三章、三种传值方式
  • .Net 路由处理厉害了
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET企业级应用架构设计系列之结尾篇
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .Net语言中的StringBuilder:入门到精通
  • .net中我喜欢的两种验证码
  • /dev/sda2 is mounted; will not make a filesystem here!
  • [ C++ ] STL---仿函数与priority_queue
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [autojs]autojs开关按钮的简单使用