模块的操作
来源:互联网 发布:ubuntu装入u盘 编辑:程序博客网 时间:2024/06/03 18:44
声明:以下部分内容摘自《python基础教程》
我们以copy模块举例。
首先我们导入copy模块:
>>> import copy
1 我们想看copy模块中有哪些函数、类、变量等我们想要使用的东西,使用dir()函数:
>>> dir(copy)['Error', 'PyStringMap', '_EmptyClass', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_copy_dispatch', '_copy_immutable', '_copy_inst', '_copy_with_constructor', '_copy_with_copy_method', '_deepcopy_atomic', '_deepcopy_dict', '_deepcopy_dispatch', '_deepcopy_inst', '_deepcopy_list', '_deepcopy_method', '_deepcopy_tuple', '_keep_alive', '_reconstruct', '_test', 'copy', 'deepcopy', 'dispatch_table', 'error', 'name', 't', 'weakref']
出现了一大串名字,有的以下划线开头,有的不是。我们可以使用列表推导式过滤掉以下划线开头的:
>>> [n for n in dir(copy) if not n.startswith('_')]['Error', 'PyStringMap', 'copy', 'deepcopy', 'dispatch_table', 'error', 'name', 't', 'weakref']
可以看到有copy函数和deepcopy函数,分别为浅拷贝和深拷贝。
2 我们想知道怎么用这些函数,可以利用标准函数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.
这样我们就知道copy()函数需要传一个参数来使用,而且是浅复制。还可以看看文档字符串__doc __string:
>>> print copy.copy.__doc__Shallow copy operation on arbitrary Python objects. See the module's __doc__ string for more info.
这些信息还不够,想看源码的话只要找到源码的路径即可:
>>> print copy.__file__/usr/local/python27/lib/python2.7/copy.pyc
可以看到如果文件名以.pyc结尾,只要查看对应的以.py结尾的文件即可。
3 _ _all__变量的意义
>>> copy.__all__['Error', 'copy', 'deepcopy']
可以看到返回一个copy模块内部设定好的列表,它定义了模块的公有接口,更准确的说,它告诉解释器从模块导入所有名字代表什么含义,因此如果你使用如下代码:
from copy import *
那么你就能使用 all变量中的四个函数,而其它的就被无情地过滤掉了。可以看出这个变量很有意义,当然,如果有的模块没有定义它,那么如果用import *来导入的话将会导入所有不以下划线开头的全局名称。
0 0
- 模块的操作
- 操作excel的perl模块
- nodejs的字符串操作模块
- 控制器的模块和操作
- python3的模块import操作
- pickle模块的基本操作
- Perl操作excel2007的模块
- 自己封装的mongodb操作的模块
- 用于操作数据库的通用模块
- VB对注册表的操作模块
- ThinkPHP的模块和操作分析
- 通过串口操作GPRS模块的编程
- apache的rewrite模块实例操作
- Allegro PCB 的模块复用操作
- Python快速学习08:模块的操作
- Python快速学习08:模块的操作
- python对cookie的操作模块-cookielib
- apicloud db模块的简单操作
- 余数和商
- ReentrantReadWriteLock和两种同步方式的对比
- 两数相乘
- 欢迎使用CSDN-markdown编辑器
- 问题:iOS9获取[[UIApplication sharedApplication] keyWindow]为 nil
- 模块的操作
- Freemarker学习#2
- FOJ Problem 2221 RunningMan
- 如何进阶学习IOS
- Activity之间、Fragment之间和Activity与Fragment之间的跳转
- Angular学习资源
- 上节课的九种循环
- TextView点击后背景颜色、文字颜色改变
- 2016 口腔修复序列图