Monkey 发表于 2025-6-6 20:00

类与对象

类的定义:具有相同特征或相同行为的一类事物
对象的定义:类里面的一个具体实例
类的语法:
            class 类名:
                     类的帮助信息(即:注释)
                     类体
       (1)类体包括类的属性和类的函数(方法)
       (2)类名在命名时需要严格遵守标识符的规范,首字母及不同的其他单词的首字母都需要大写(驼峰命名)

创建对象:
             类名()
如何访问类的属性:(类.属性名/对象.属性名)
       类的属性只有这个类才有资格访问,而类的对象也是属于这个类,所以也可以通过类的对象来访问类的属性。

       结论:只能通过类和类的对象访问类的属性,并获取到属性的值
如何访问类的函数(方法):(对象.函数名)

       通过类的对象可以调用类里的函数(方法),那如果直接通过类进行调用是不是也可以呢?

       通过类直接调用类的方法时,系统报错了,提示缺少一个位置参数self,且将鼠标放在函数名后的括号上,也提示“self”没有填写,为什么通过类的对象调用类的函数(方法)时就没有提示缺少参数呢?这个self到底是个什么鬼?

       由上可知,self就是类的对象本身
       当使用类直接调用类的函数(方法)时,因为类的函数有一个位置参数(self),但类在调用这个函数时并没有传参,所以提示缺少一个位置参数。
       当使用类的对象调用类的函数(方法)时,因为self就是类的对象本身,会自动将自己作为参数传进去,所以不需要再传参数。
       结论:调用类的函数(方法)的时候,必须是类的对象来调用。
类的函数(方法)的分类
       (1)对象函数(方法)
               当类的函数(方法)名后面有一个浅紫色的参数(一般使用self)的函数(方法),我们就将其称为对象函数(方法)(只能通过类的对象进行调用)
               注:对象方法不能通过类进行调用,并不是绝对的(如下所述)。
               Python的类可以调用对象方法,但使用类调用对象方法时,Python不会自动为方法的第一个参数self绑定参数值;程序必须显式地为第一个参数self传参,这种方式调用的方法被称为“未绑定方法”。

       (2)静态函数(方法)
               使用@staticmethod放在函数上面标记/装饰的函数(方法),我们就将其称为静态函数(方法)(可以通过类以及类的对象进行调用)

       (3)类函数(方法)
               使用@classmethod放在函数上面标记/装饰的函数(方法),我们就将其称为类函数(方法)(可以通过类以及类的对象进行调用)

类的函数(方法)与普通函数的异同点(普通函数见函数的定义及参数类型)
       (1)除了对象方法必须有self,类方法必须有cls参数外,其他并无区别
       (2)各种参数类型(位置参数、默认参数、动态参数、关键字参数)都支持
       (3)return也是支持的

页: [1]
查看完整版本: 类与对象