Python 学习笔记一之模块探究学习
来源:互联网 发布:张大奕有几个淘宝店 编辑:程序博客网 时间:2024/05/21 04:23
探究模块的技能极有价值,因为作为Python程序猿,在职业生涯中可能会遇到很多有用的模块,而又无法集中时间全面系统的学习各种模块。
独立地探究模块还能让我们在网上找到用的模块时,可以很快理解它们,从而让编程成为一种享受。
探究模块最直接的方式就是在Python解释器中研究他们。
下面以SciPy
和copy
模块为例进行介绍
模块中有什么
导入模块
>>> import scipy as sp
如果没有引发错误,说明存在。
使用
dir
>>> [n for n in dir(sp) if n.startswith('_')]Out[3]: ['__SCIPY_SETUP__', '__all__', '__builtins__', '__cached__', '__config__', '__doc__', '__file__', '__loader__', '__name__', '__numpy_version__', '__package__', '__path__', '__spec__', '__version__']
找出包含
dir(sp)
中所有不以下划线开头的名字的列表__all__
变量>>> [n for n in dir(copy) if not n.startswith('_')]Out[2]: ['Error', 'PyStringMap', 'builtins', 'copy', 'deepcopy', 'dispatch_table', 'error', 'name', 't', 'weakref']
__all__
变量内容如下>>> copy.__all__Out[3]: ['Error', 'copy', 'deepcopy']
如果你使用如下代码
>>> from copy import *
就只能导入
__all__
变量中的4个函数,要导入PyStringMap
,必须显示实现。
在编写模块时,像设置__all__
这样的技术是相当有用的。因为模块中可能会有一大堆其他程序中不需要或不想要的变量、函数和类。__all__
会“客气地”将它们过滤。
用help
获取帮助
>>> help(copy.copy)Help on function copy in module copy:copy(x) Shallow copy operation on arbitrary Python objects. See the module's __doc__ string for more info.
>>> print(copy.copy.__doc__)Shallow copy operation on arbitrary Python objects. See the module's __doc__ string for more info.
使用help
与直接检查文档字符串相比,好处在于会获得更多信息。
使用源代码
阅读源代码,事实上是学习Python最好的方式,除了自己编写代码外。
检查模块的__file__
属性来找到源码的路径。
>>> print(copy.__file__)E:\Anaconda3\lib\copy.py
0 0
- Python 学习笔记一之模块探究学习
- Python学习笔记一 time模块学习
- Python入门学习笔记之Python模块
- Python 爬虫学习笔记一: requests 模块
- Python学习笔记之os模块
- Python学习之路---模块笔记
- Python学习笔记----模块
- Python学习笔记----模块
- Python学习笔记--模块
- 【Python学习笔记】模块
- Python学习笔记-模块
- Python模块学习笔记
- Python之模块学习
- python学习之模块
- python学习之模块
- python学习笔记(一)jieba模块初探
- Python网络编程学习笔记一:socket模块
- Python OS模块学习(一)
- PHP用户登录功能实现
- hdoj1860
- 实习日记--20150721
- Quartz集群配置(一)
- RMQ(区间最值查询)入门知识
- Python 学习笔记一之模块探究学习
- JAVA模拟浏览器调用rest api接口
- Codeforces Round #303 (Div. 2)
- HDU 5294 Tricks Device(2015多校第一场 最短路 + 最小割)
- 【斯坦福---机器学习】复习笔记之最优间隔分类器
- (好文)Log4j输出格式控制--log4j的PatternLayout参数含义
- Cloudera Manager 安装时出现socker gaierror[error -2] name or service not know 或者could not contact scm ser
- JAVA 并发编程-传统线程互斥技术(Synchronized)(三)
- LA4119 总是整数