python中类方法、静态方法和实例方法的区别(自学笔记)记住三句话(代码实例)

您所在的位置:网站首页 51cnc自学网 python中类方法、静态方法和实例方法的区别(自学笔记)记住三句话(代码实例)

python中类方法、静态方法和实例方法的区别(自学笔记)记住三句话(代码实例)

2023-07-01 09:41| 来源: 网络整理| 查看: 265

首先明白类是什么,通俗点说,类就是一个模板,是面向对象编程代码泛型中,将数据和对数据的操作方法(既函数)打包起来的一种模板,而对象就是模板类的一个实例。通俗点说,类就像一个盒子,将数据属性和函数打包起来扔进去,对象就像是这个盒子的名字,在进行代码编程的时候,我们就负责搭积木,将这些盒子堆在一起,程序就被抽象为一个或多个对象,通过对象之间的交互实现程序的功能,而不是一系列的指令。

面向对象编程(理解)

(找的网图,懒得画了,大概就这个意思就行了^-^)一个个盒子就是一个个类,在整个程序中通过对象的交互实现程序的功能,面向对象编程,核心要解决的问题就是:省事(专业点就是代码可读性高,易于编程与更改)

言归正传言归正传

声明一个类的时候,类中的变量分为:类变量和实例变量

类中的方法分为:实例方法,类方法和静态方法

类方法:声明类方法标识符@classmethod 必须使用参数cls 可以访问类变量(只有类方法可以访问类变量),可以通过类名或者实例名来访问

静态方法:声明静态方法标识符@staticmethod 不能访问类变量也不能访问实例变量,可以通过类名或者实例名来访问

实例方法:声明实例方法必须使用参数self,不能访问类变量,只能通过实例名来访问

代码实例:

class dogs():    #类变量,只能由类方法访问    dogbook={'黄色':30,'黑色':20,'白色':0}

   def __init__(self,name,color,weight):        self.name=name        self.color=color        self.weight=weight

   #定义一个实例方法,声明实例方法必须使用参数self,不能访问类变量,只能通过实例名来访问    def bark(self):        print(f"{self.name}叫了起来")

   #定义类方法,声明类方法必须使用参数cls 可以访问类变量,可以通过类名或者实例名来访问    @classmethod    def dog_num(cls):        num=0        for v in cls.dogbook.values():            num = num+v        return num

   #定义静态方法,不能访问类变量也不能访问实例变量,可以通过类名或者实例名来访问    @staticmethod    def total_weight(dogs):        total = 0        for i in dogs:            total =total+i.weight        return total

#类变量只能通过类名来访问,dog_num()是类方法,在类方法中也可以访问类变量print(f"共有{dogs.dog_num()}条狗")#类实例化对象d1和d2d1 =dogs('大黄','黄色',20)#bark()是实例方法,只能通过实例名来访问,不能通过类名来访问d1.bark()d2=dogs('小白','白色',8)#静态方法,不能访问实例变量也不能访问类变量,既可以通过实例名访问,也可以通过类名访问print(f"大黄和小白一共重{dogs.total_weight([d1,d2])}斤")print(f"大黄和小白一共重{d2.total_weight([d1,d2])}斤")

程序输出结果(^-^)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3