Python——类与对象

面向对象编程(Object-Oriented Programming,简称OOP)是一种通过组织对象来设计程序的编程方法。

Python天生就是面向对象的模块化编程。

一、初识类与对象

       /-------> BYD  E6(京A.88888) 实例,对象
车(类)  
       \-------> BMW  X5(京B.00000) 实例(对象)
    
       /-------> 小京巴(户籍号:000001)
狗(类)  
       \-------> 导盲犬(户籍号:000002)

       /-------> 100 (对象)
int(类)  
       \-------> 200 (对象)

        1、类(class)

                1.1 概念

                        类是对一类对象的抽象,是对象的模板或蓝图。它定义了对象的属性(特征)和方                          法(功能)

                1.2 创建       

                        数据成员:表明事物的特征。 相当于变量

                        方法成员:表明事物的功能。 相当于函数

                        通过class关键字定义类。

#类的创建语句语法:
class 类名 (继承列表):
	实例属性(类内的变量) 定义
    实例方法(类内的函数method) 定义
    类变量(class variable) 定义
    类方法(@classmethod) 定义
    静态方法(@staticmethod) 定义

                类名就是标识符,(通常约定首字母大写)

                类名实质上就是变量,它绑定一个类

                self 代表类实例化的对象本身

        2、对象(object)

                2.1 概念

                        对象是类的实例化,是类的实际数据存储,具有类所定义的属性和方法

                2.2 创建

                        构造函数调用表达式

变量 = 类名([参数])

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

                类参数按照初始化方法的形参传递(初始化:__init__)

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

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

                        每个对象有自己的状态,但共享方法

二、类的属性和方法

        类的属性和方法是类的核心组成部分,它们用于定义类的状态和行为

        1、实例属性

                每个实例有自己的变量,称为实例变量(也叫属性)

实例.属性名

        2、实例方法

class 类名(继承列表):
    def 实例方法名(self, 参数1, 参数2, ……,):
        """注释方法"""    #可省略
        语句块

                实例方法就是函数,至少有一个指向实例对象的形参self

实例.实例方法名(调用传参)
# 或
类名.实例方法名(实例, 调用传参)

简单示例

        3、类属性

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

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

                类属性说明:类属性,可以通过该类直接访问

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

        4、类方法

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

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

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

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

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

         5、静态方法

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

                使用@staticmethod装饰器定义

                不需要self和cls参数

                通过类或类实例调用

                可以访问类属性,不能访问实例属性

         6、魔术方法

                魔术方法是一种特殊的方法,用双下划线包裹,例如__init____str_等。

                这些方法允许您自定义类的行为,以便与内置Python功能(如+运算符、迭代、字符串                    表示等)交互。

                常用方法:

        __init__(self, ...): 初始化对象,通常用于设置对象的属性。

        __str__(self): 定义对象的字符串表示形式,可通过str(object)或                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        print(object)调用。例如,您可以返回一个字符串,描述对象的属性。

        __repr__(self): 定义对象的“官方”字符串表示形式,通常用于调试。                                                  可通过repr(object)调用。

        __len__(self): 定义对象的长度,可通过len(object)调用。通常在自定义容                                     器类中使用。

        __getitem__(self, key): 定义对象的索引操作,使对象可被像列表或字典一                                     样索引。例如,object[key]

        __setitem__(self, key, value): 定义对象的赋值操作,使对象可像列表或字                                    典一样赋值。例如,object[key] = value

        __delitem__(self, key): 定义对象的删除操作,使对象可像列表或字典一样                                      删除元素。例如,del object[key]

        __iter__(self): 定义迭代器,使对象可迭代,可用于for循环。

        __next__(self): 定义迭代器的下一个元素,通常与__iter__一起使用。        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​     __add__(self, other): 定义对象相加的行为,使对象可以使用+运算符相加。                                     例如,object1 + object2

        __sub__(self, other): 定义对象相减的行为,使对象可以使用-运算符相减。

          __eq__(self, other): 定义对象相等性的行为,使对象可以使用==运算符比较

        __lt__(self, other): 定义对象小于其他对象的行为,使对象可以使用<运算                                      符比较。

        __gt__(self, other): 定义对象大于其他对象的行为,使对象可以使用>运算                                      符比较。

        __call__(self, other) 是一个特殊的方法(也称为“魔法方法”),它允许一个                                   对象像函数一样被调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值