python学习总结:
1、 抽象
将能够重用的代码块封装成函数,能够被其他代码块或者模块调用
<code>def funcname:
statement </code>
2、 更加抽象 -- 面向对象编程
继承
def A(B):
即 A 类 继承自 B 类,最好不要一个子类继承多个基类,因为这样,会有更加复杂的问题出现,尤其是基类的顺序决定相同函数名的函数的定义
封装
将相同或者相似属性的实体封装成同一个类,属性,方法
多态
<code>
class A:
def doSomething(): pass
class B(A):
def doSomething():
print "In Class B, doSomething." </code>
子类继承父类,具有相同的方法,能够自定义相同方法名的方法
3、 查看类或者对象结构
issunclass()
特殊属性:
__bases__
, __class__
type() 查看实例所属的类
isinstance()
hasattr() 检查是否含有某方法
getattr, setattr 获取和设置对象属性
__dict__
查看对象内所有存储的值
如果想查看对象的组成,请参考 inspect 模块
4、 异常
<code>try:
statement
except (nameError, ...), e:
statement
else
statement
finally:
statement</code>
不带参数的 raise
能够抛出异常
5、 模块 modules
模块导入只需要一次,这样能够防止互相导入的模块之间发生无限递归的情形。如果在代码期间模块发生了修改,需要重新导入的话,使用 reload() 函数,但是理论上应该尽可能的避免重新加载模块。
模块的属性中,__name__
表示模块的名字,当模块被带入时,__name__
就是模块的名字,当模块作为主程序运行时,__name__
的值为 __main__
,所以可以通过这个属性,在模块中添加测试代码
<code>if__name__
== '__main__
': test()</code>
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
网友评论