Python学习day19

实例属性:

每个对象用于绑定自己数据的变量叫实例变量,也叫属性

每个对象都有的特殊属性:

__dict__ 属性 __class__ 属性

类变量:

类变量的类的属性,此属性属于类,不属于类的实例

作用:

通常用来存储该类对象共有的数据

说明:

类变量可以通过类直接访问

类变量可以通过类的实例直接访问

类变量可以通过此类的对象的__class__属性间接访问

语法:

class 类名(继承列表):

类变量名 = 表达式

…………

类的文档字符串:

类内没有赋值给任何变量的字符串为类的文档字符串

类的文档字符串由类的__doc__属性绑定

类的__slots__属性

作用:

限定一个类创建的实例只能有固定的属性(实例变量)

不允许对象添加列表以外的属性

防止用户因写错属性的名称而发生程序错误

说明:

含有__slots__属性的类所创建的实例没有__dict__属性,即此实例不用字典来存储对象

的属性

类方法:

类方法是用于描述类的行为的方法, 此方法属于类,不属于该类创建的实例

说明:

1、类方法要使用@classmethod 装饰器定义

2、类方法至少一个形参,第一个形参参于绑定类,约定写为”cls“

3、类实例和对象示例都可以调用类方法

4、类方法不能访问此类创建的对象的属性

静态方法@staticmethod

静态方法是定义在类内的函数,此函数的作用域是类的内部

说明:

静态方法需要使用staticmethod装饰器定义

静态方法与普通函数定义相同,不需要传入self实例参数和cls类参数

静态方法只能凭借该类或类的实例调用

静态方法不能访问类变量和实例变量(属性)

继承(inheritance) 和 派生 (derived)

继承是指从已有的类中派生出新的类,新类具有类的原类的行为,并能扩展

新的行为

派生类就是从一个已有的类衍生出新的类,在新的类上可以添加新的属性和

行为

作用:

1、用继承派生机制,可以将一些共有功能加在基类中,实现代码共享

2、在不改变超类 的代码的基础上改变原有的功能

名词:

基类(base class)/超类(super class)/父类(father class)

派生类(derived class ) / 子类

单继承:

语法:

class 类名(基类名):

语句块

说明:

单继承是指派生类由一个基类衍生出来

继承说明;

任何类都直接可间接的继承自object类

object类是一分类的超类

类的__base__属性

__base__属性用来记录此类的基类

内建类的继承关系:

>>> help(__builtins__)

覆盖 overrride

覆盖是指在有继承关系的类中,子类中实现了与基类同名的方法,

在子类实例调用该方法时,实际调用的是子类中的覆盖版本的方法的

现象叫覆盖

super 函数:

super(type, obj) 返回绑定超类的实例(要求obj必须为type类型的实例)

super() 返回绑定超类的实例,等同于super(__class__, 实例方法的第一个参数),

必须用在方法内调用

作用:

返回绑定超类的实例, 用超类的实例来调用其父类的覆盖方法

显示调用基类的构造方法:

当子类中实现了__init__方法, 基类的构造方法并不会被调用,此时需要显示调用

基类的构造方法

猜你喜欢

转载自blog.csdn.net/sinat_42311311/article/details/81172723