【python初步要点】
#! 用于告诉操作系统去哪里找Python解释器为运行您的程序。
1、print 的输出有以下2种形式,""%()的形式类似于C的printf。
要注意逗号“,”在输出的时候意味着是一个空格。
python3后,print关键字变成了print()函数。
2、raw_input('str')可以用于从命令行接受输入。
python3后,raw_input变成了input()方法。
3、[:]
4、元组()是不可变的list。
5、代码块以“:”结尾,函数、类定义以“:”结尾,缩进对齐,称为代码组。
6、文件以open(filename, access_mode)和close()成员方法来操作。
7、python的解释器是C写的,so很多地方和C一样。譬如合法的变量名。
8、函数、类定义接近着的一行可以为字符串,可以通过__doc__访问。
9、对象的__class__指向类对象,__name__为本对象的名字,所以__class__ __name__可以判断对象是哪个类。
10、导入模块有有2种为import 和 import * from *。
11、注释符为“#”,续行和C一样,为""。
12、多元赋值: x,y,z = 1,2,'a string',则x=1,y=2,z='a string'。
13、内存管理为引用计数:
1)变量无须事先声明;2)变量无须指定类型;3)程序员不用关心内存管理;4)变量名会被“回收”;5)del语句能够直接释放资源。
14、各有各的好处也各有各的坏处。
【函数】
1、不会有前向引用问题。
2、@decorator函数装饰器。
3、非关键字可变长参数*,关键字变量参数(字典)**。
4、apply()、filter()、map()、reduce()。
5、偏函数。(部分参数定额的函数)
6、如果在局部作用域内没有找到名字,则在全局作用域内找。如仍没找到,则抛出NameError异常。
7、global语句引用全局变量。
8、闭包,函数内的def。lambda不是闭包。
9、yield(生成器)。
10、关键字参数后不允许带有位置参数。
【空间】
1、3个名称空间:局部名称空间、全局名称空间、内建名称空间。
2、from * import * as *。from导入的名称会污染当前名称空间。
3、import语句默认实现为调用__import()__函数完成工作。
4、包导入和模块导入类似。
5、from package.module import *。会导入__init__.py中__all__的所有模块。__init__应当返回none。
6、循环import问题通过底部import来完成。
【类】
1、定义原型:class MyNewObjectType(bases):。bases为基类。
2、一般的方法会需要self,而表态方法或类方法不会。
3、构造函数需要手动调用父类的构造函数,析构函数同理。
def __init(self, nm, ph):
AddrBookEntry.__init__(self, nm, ph)
4、定义静态数据类型,所有类的根类必须是object。成员变量用self.xxx定义。
class C(object):
foo = 100
5、静态方法不包含参数,类方法包含类对象参数。
def foo():
foo = staticmethod(foo).
def foo(cls):
foo = classmethod(foo)
或者,在函数名上一行加@staticmethod或@classmethod。
6、可以多重继承,用,分隔。通过__bases__可以获取父类元组。
7、issubclass()&isinstance()
8、私有化:双下划线“__”运行时被混淆。单下划线“_”不允许被from * import *。
【__init__.py】