python基础——类

1.类的创建

类名首字母通常大写,self也可以是其他的,只是约定熟成的用self

class [类名]([继承(可以为空)]):
    [类属性]
    def __init__(self,[实例变量(属性)]): # 构造函数
        self.[属性] = [属性]
        
    def [方法](self,[参数列表]):
        代码块
    @classmethod # 声明了一个类方法
    def [方法名](cls,[参数列表]):
        代码块
    @staticmethod # 声明了一个静态方法
    def [方法名]([参数列表]): # 与函数类似
        代码块
[变量] = [类名](参数) # 实例化类[类名] [变量]称为实例对象,存放的是一个地址

 1.类属性

  • 类属性是类的属性,此属性属于类,不属于此类的实例

  • 作用:

    • 通常用来存储该类创建的对象的共有属性

  • 类属性说明

    • 类属性,可以通过该类直接访问

    • 类属性,可以通过类的实例直接访问

  • 属性的赋值规则

    • 首次为属性赋值则创建此属性.

    • 再次为属性赋值则改变属性的绑定关系.

[变量]

2.构造函数 (实例化对象)

self相当于类自身,本身

self[属性] = 实例变量,我的理解,将实例对象传进来的参数用类里面的变量来表示

def __init__(self,[实例变量(属性)]): # 构造函数
        self.[属性] = [属性]

-- 变量存储的是实例化后的对象地址。

-- 类名后面的参数按照构造方法的形参传递

  • 对象是类的实例,具有类定义的属性和方法。

  • 通过调用类的构造函数来创建对象。

  • 每个对象都有自己的状态,但共享相同的方法定义。

实例说明

  • 实例有自己的作用域和名字空间,可以为该实例添加实例变量(也叫属性)

  • 实例可以调用类方法和实例方法

  • 实例可以访问类变量和实例变量

3.实例方法

实例方法至少有一个形参,第一个形参绑定调用这个方法的实例,一般命名为"self"

def [方法](self,[参数列表]):
        代码块

实例方法的调用:

【类名】.【实例方法名】(实例, 调用传参)

【实例】.【实例方法名】(调用传参)

4.类方法

首先要用@classmethud声明

  • 类方法是用于描述类的行为的方法,类方法属于类,不属于该类创建的对象

  • 说明

    • 类方法需要使用@classmethod装饰器定义

    • 类方法至少有一个形参,第一个形参用于绑定类,约定写为'cls'

    • 类和该类的实例都可以调用类方法

    • 类方法不能访问此类创建的对象的实例属性

cls 是一个约定俗成的名称,用于表示类本身。在类方法(使用 @classmethod 装饰的方法)中,cls 作为第一个参数传递给方法。这使得类方法可以访问和修改类属性以及调用其他类方法,而不需要引用具体的实例。

cls 的作用

  1. 访问类属性:类方法可以通过 cls 访问和修改类属性。

  2. 调用类方法:类方法可以通过 cls 调用其他类方法。

  3. 创建类实例:类方法可以使用 cls 来创建类的实例。

@classmethod # 声明了一个类方法
    def [方法名](cls,[参数列表]):
        代码块

调用类方法:

【类名】.【方法名】(【参数列表】)

【实例化对象】.【方法名】(【参数列表】)

5.静态方法

首先用@staticmethud声明

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

  • 说明

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

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

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

    • 静态方法可以访问类属性但是不能访问实例属性

@staticmethud
def [方法名]([参数列表]):
    代码块

调用静态方法 

【类名】.【方法名】(【参数列表】)

【实例化对象】.【方法名】(【参数列表】)

2.继承/派生

  • 什么是继承/派生

    • 继承是从已有的类中派生出新的类,新类具有原类的数据属性和行为,并能扩展新的能力。

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

  • 为什么继承/派生

    • 继承的目的是延续旧的类的功能

    • 派生的目地是在旧类的基础上添加新的功能

  • 继承/派生的作用

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

    • 在不改变基类的代码的基础上改变原有类的功能

  • 继承/派生名词:

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

    • 派生类(derived class)/子类(child class)

1.单继承

  • 单继承的语法:

    class 类名(基类名):
        语句块

    单继承说明:

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

2.多继承

class DerivedClassName(Base1, Base2, Base3):
    <statement-1>
    .
    .
    .
    <statement-N>

需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。

3.覆盖

  • 覆盖是指在有继承关系的类中,子类中实现了与基类同名的方法,在子类的实例调用该方法时,实际调用的是子类中的覆盖版本,这种现象叫覆盖

  • 作用:

    • 实现和父类同名,但功能不同的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值