首页 > 代码库 > python学习(十) 自带电池

python学习(十) 自带电池

10.1 模块

>>> import math
>>> math.sin(0)
0.0

  10.1.1 模块是程序

       假设自己写的hello.py放在c:\python目录中,下面的方法就是导入自己的模块:

  import sys

  sys.path.append(‘c:/python‘)   //  假设自己的程序保存在 c:\python

  import hello

       

        如果hello模块被修改了,需要重新导入:

  hello = reload(hello)

  10.1.2 模块用于定义

  10.1.3 让你的模块可用

  如何让sys.path在一开始就包含正确的目录,两种方法:

       一种是将模块放在合适的位置:

弊端:不希望自己的模块填满python解释器的目录 / 没有权限 / 想将模块放在其他地方。

>>> import sys, pprint
>>> pprint.pprint(sys.path)
[‘‘,
 C:\\Program Files\\Python36\\Lib\\idlelib,
 C:\\Program Files\\Python36\\python36.zip,
 C:\\Program Files\\Python36\\DLLs,
 C:\\Program Files\\Python36\\lib,
 C:\\Program Files\\Python36,
 C:\\Program Files\\Python36\\lib\\site-packages]

另外是告诉解释器去哪找模块:

PYTHONPATH环境变量:

set PYTHONPATH = %PYTHONPATH%; C:\python

10.1.4 包

为了组织好模块,你可以将他们分组为包(package)。

当模块存储在文件中时(扩展名.py),包就是模块所在的目录。为了让python将其作为包对待,它必须包含一个名为__init__.py的文件。

10.2 探究模块

10.2.1 模块中有什么

dir:

>>> import copy
>>> dir(copy)
[Error, __all__, __builtins__, __cached__, __doc__, __file__, __loader__, __name__, __package__, __spec__, _copy_dispatch, _copy_immutable, _deepcopy_atomic, _deepcopy_dict, _deepcopy_dispatch, _deepcopy_list, _deepcopy_method, _deepcopy_tuple, _keep_alive, _reconstruct, copy, deepcopy, dispatch_table, error]
>>> 

__all__: 定义__all__,  __all__会过滤掉不用的变量,函数和类。

10.2.2 用help获取帮助

>>> help(copy)

10.2.3 文档

>>> print(copy.__doc__)

10.2.4 使用源代码

>>> print(copy.__file__)

10.3 标准库:一些最爱

10.3.1 sys

与python解释器密切关联的变量和函数

argv

exit

modules

path

platform

stdin

stdout

stderr

10.3.2 OS

提供访问操作系统的方法

10.3.3 fileinput

10.3.4 集合、队和双端队列

10.3.5 time

10.3.6 random

10.3.7 shelve(简单的存储方案)

10.3.8 re(正则表达式的支持)

10.3.9 其他有趣的标准模块

functools:

difflib

hashlib

csv

 

python学习(十) 自带电池