您的位置:首页 > 编程语言 > Python开发

Python学习笔记----面向对象(类)

2015-12-24 15:36 211 查看
三:类

1:创建类,括号内可以添加父类,object是“所有类之母”,如果类没有继承任何其它类,则将object作为默认的父类,

pass处添加具体代码



类的实例化: eg: MyClassObject = MyClass()



创建子类:class 子类名(父类名):子类继承父类的所有属性和方法,构造器须单独定义,父类的构造器要显示写出才被执行,即父类._init_()

2: 类数据属性 -----------------类名.属性名

查看类的属性:内建函数dir(类名) ,返回的是一个名字列表

类名._dict_,返回的是一个字典

特殊类属性:_name_ 返回类名

_doc_ 返回类的文档字符串

_bases_ 返回所有父类构成的元组

_dict_ 返回类的属性

_module_ 返回类的模块

_class_ 返回类中所对应的类

实例属性-----------------------实例.属性名

当一个实例被释放时,它的属性同时也被清除。

特殊实例属性:_class_ 实例的所属类

_dict_ 实例的属性

类属性和实例属性的区别:

(1):当类属性不可变情况下:当类属性变化,则实例属性也变化

当实例属性变化,而类属性不变化



(2):当类属性可变情况下(像属性为列表、字典等):当类属性变化,则实例属性也变化

当实例属性变化,而类属性也变化



3: 方法:给类添加功能,在类中定义方法,函数的第一个参数为self,并且方法必须绑定到一个实例上才能使用,self它表示调用此方法的实例对象。

特殊方法:_init_():在类实例化过程中调用,像C++中的构造函数,叫构造器

在子类中重写_init_()且子类被实例化时,父类的_init_()不会被自动调用,若想调用,则可以在子类的_init_

中显式写出 父类._init_(self)或者用super(子类,self)._init_()

_new_():一种静态方法,并且传入的参数是在类实例化操作时生成的。通常设置不变数据类型的子类。

_del_():当类实例的引用计数为0时,则调用方法将实例清除,且只被调用一次,且也要显式调用父类的_del_()。

4:类、实例的内建函数

(1)issubclass(子类,父类):判断一个类是另外一个类的子类或者子孙类。

(2)isinstance(实例,类(类型)):判断一个实例是不是给定类的实例。

(3)hasattr(实例,属性)、getattr(实例,属性)、setattr(实例,属性,属性值)、delattr(实例,属性):对属性的操作。

(4)dir(参数):列出参数内的所有属性信息。

(5)vars():返回是一个字典,且对象参数必须有_dict_属性。

5:多态

顾名思义,表示是多种形式,意味着*可以对不同类的对象使用同样的操作*,多态不仅适用于方法中,也适用于内建运算符和函数。

将不同类中的共同方法抽取到同一类中(不同类继承到同一类中)

6:重新构造方法

如果一个子类的构造方法进行重写,那么需要调用超类的构造方法来确保进行基本初始化

方法一:在子类的__init__(self)中加入超类.__init(self)-------------------------用在普遍情况下

方法二:在子类的__init__(self)中加入super(子类,self).__init__()-----用在多个超类时方便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: