五、对象和面向对象
5.1 类的定义
1.派生类继承基类时,基类写在派生类名字后的小括号里,就想方法的参数一样,class FileInfo(UserDict)...
2.多重继承时,只需在类名后小括号中用逗号分割基类名即可。
3.任何 Python 类方法的第一个参数(对当前实例的引用)都叫做 self,相当于java中的this。
4.调用类方法时不用写self参数。
5.self不是关键字,只是习惯写成self。
6.__init__没有返回值,是可选并非必须的,必须显示调用基类的__init__。
7.派生类中调用基类方法时,必须写self参数。
8.派生类想扩展基类的方法,必须在方法中显式调用基类的方法。
5.2 类实例的创建
1.创建类的实例,只用像调用函数一样调用类名,参数为__init__方法的参数,注意不用self。
2.__class__,实例的内置属性,类类型,表示对象的类,相当于java中的每个实例的Class类。
3.__dict__,实例的内置属性,字典类型,存储对象的所有可写属性(非内置属性)。
4.__bases__,实例的内置属性,元组类型,基类的所有__class__。
5.__name__,实例或类型的名称。
6.所有实例的内置属性为read-only。
7.__class__是一个类的引用,而self是一个类的实例。???
5.3 类属性和数据属性
1.类属性对应java里的类变量(static变量),可通过类名和实例名来访问,并被所有类和实例共享。
2.数据属性对应java类中的一般变量,通过实例来访问(如果是public)。
3.类属性在类名下面一行直接赋值。
3.数据属性一般在__init__方法中赋值,其赋值方法和python中一般变量一样,无需声明,直接赋值就产生。
3.python中没有方法重载。
4.python中
5.4 专有类方法
1.专有类方法是在用特殊语法时由python自动调用的。
2.__new__
3.__init__
4.__del__
5.__repr__
6.__str__
7.__le__
8.__le__
9.__eq__
10.__ne__
11.__gt__
13.__ge__
14.__cmp__
15.__rcmp__
16.__hash__
17.__nonzero__
18.__unicode__
19.__getattr__
20.__setattr__
21.__delattr__
22.__getattribute__
23.__get__
24.__set__
25.__delete__
26.__slots__
27.__metaclass__
28.__call__
29.__len__
30.__getitem__
31.__setitem__
32.__delitem__
33.__iter__
34.__contains__
35.__getslice__
36.__setslice__
37.模拟数值类型的专有类方法
5.5 私有函数
1.私有函数不可以从它们的模块外面被调用。
2.私有类方法不能够从它们的类外面被调用。
3.私有属性不能够从它们的类外面被访问。
4.所有私有属性和私有方法以命名来标识是否私有,__开头,但是__不结尾,
没有评论:
发表评论