Python 学习笔记一之模块探究学习

探究模块的技能极有价值,因为作为Python程序猿,在职业生涯中可能会遇到很多有用的模块,而又无法集中时间全面系统的学习各种模块。

独立地探究模块还能让我们在网上找到用的模块时,可以很快理解它们,从而让编程成为一种享受。

探究模块最直接的方式就是在Python解释器中研究他们。

下面以SciPycopy 模块为例进行介绍


模块中有什么

  1. 导入模块

    >>> import scipy as sp

    如果没有引发错误,说明存在。

  2. 使用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) 中所有不以下划线开头的名字的列表

  3. __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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值