2017.6.15

python学习总结:
1、 抽象
将能够重用的代码块封装成函数,能够被其他代码块或者模块调用
def funcname:
statement

2、 更加抽象 -- 面向对象编程

继承
def A(B):
即 A 类 继承自 B 类,最好不要一个子类继承多个基类,因为这样,会有更加复杂的问题出现,尤其是基类的顺序决定相同函数名的函数的定义

封装
将相同或者相似属性的实体封装成同一个类,属性,方法

多态

class A:
def doSomething(): pass

class B(A):
def doSomething():
print "In Class B, doSomething."

子类继承父类,具有相同的方法,能够自定义相同方法名的方法

3、 查看类或者对象结构
issunclass()
特殊属性:
__bases__, __class__
type() 查看实例所属的类
isinstance()

hasattr() 检查是否含有某方法
getattr, setattr 获取和设置对象属性
__dict__查看对象内所有存储的值
如果想查看对象的组成,请参考 inspect 模块

4、 异常
try:
statement
except (nameError, ...), e:
statement
else
statement
finally:
statement

不带参数的 raise
能够抛出异常

5、 模块 modules
模块导入只需要一次,这样能够防止互相导入的模块之间发生无限递归的情形。如果在代码期间模块发生了修改,需要重新导入的话,使用 reload() 函数,但是理论上应该尽可能的避免重新加载模块。

模块的属性中,__name__表示模块的名字,当模块被带入时,__name__就是模块的名字,当模块作为主程序运行时,__name__的值为 __main__,所以可以通过这个属性,在模块中添加测试代码
if__name__ == '__main__': test()

6、自定义模块,如何使用
import 导入的模块,能够直接使用,是因为python能够根据默认路径查找到这些模块,那么如果是自定义的模块,如何使之有效呢?
方法一:
修改路径。
sys.path 显示了python 查找的默认路径,一般你可以将你自己的模块放在 site-packages 这个目录下,就可以直接使用 import 带入模块了

方法二:
不想将自己的模块装满python解释器的目录,将自己的模块代码放置在其他的位置,或者没有权限将模块代码放在 sys.path 的目录位置,这个时候,可以通过添加环境变量的方式 PYTHONPATH
注意linux 和 Windows 环境变量添加的方式不同

python加载模块之后,会经过编译,生成一个后缀为 .pyc 的文件

7、 探究模块
dir() 函数能够查看模块所包含的所有特性(属性,方法、类等)
__all__属性,显示模块对外开放的接口
__doc__显示帮助信息
__file__显示模块源代码的位置路径

8、 标准库
sys
os
fileinput
shelve
time
random
heapq
re

你可能感兴趣的:(2017.6.15)