适当减少手机使用,有助于视力保护... 新的一年祝您:身体健康,阖家欢乐!~~

python 类的实例方法、类方法和静态方法

浏览量:412 作者:admin 类别:: 学习笔记 更新时间:2023-04-20 20:11:27
class PythonLanguage:
    #类构造方法,也属于实例方法
    def __init__(self):
        self.name = "二狗"
        self.add = "secondDog"
    
    # 下面定义了一个say实例方法
    def say(self):
        print("正在调用 say() 实例方法")
        
    # 下面定义一个类方法
    @classmethod    
    def sing(cls,args1):
        print("正在调用类方法带着属性:{}".format(args1))
        
        
    # 下面定义一个静态方法
    @staticmethod
    def run(args1,args2):
        print("正在调用静态方法,{}{}".format(args1,args2))

注意事项:

类方法

类方法是定义在类上的方法,它可以通过类或者类的实例来调用。类方法使用@classmethod装饰器进行标识,其中第一个参数通常被命名为cls,表示类本身,而不是类的实例。类方法可以使用类的属性和方法,但不能访问实例的属性和方法。

类方法在以下情况下很有用:

当需要在类的级别上执行操作时,而不是在实例级别上执行操作时。

当需要使用类的属性和方法时,而不需要访问实例的属性和方法时。

使用场景:

创建一个工厂方法来创建类的实例,而不需要暴露类的构造函数。

计算类中所有实例的平均值、最大值、最小值等统计信息。

在类中实现单例模式,即限制该类只能有一个实例。   

静态方法

静态方法是定义在类上的方法,它可以通过类或者类的实例来调用。静态方法使用@staticmethod装饰器进行标识,它不需要类或实例作为第一个参数。与类方法不同,静态方法不能访问类或实例的属性和方法。

使用场景:

  • 在类中实现一些与类相关的操作,但不需要访问类的属性和方法时。

  • 定义一个与类无关的辅助函数,但又不想将其定义在类之外。

通常可以放一些该类会用到的工具方法

比如现在有一本书要入库,但是入库时间按我们自己的格式去写,这个时候就可以把这个时间抽象成一个静态方法


实例方法:

实例方法最大的特点就是,它最少也要包含一个 self 参数,用于绑定调用此方法的实例对象(Python 会自动完成绑定)。实例方法通常会用类对象直接调用,例如:

当然,Python 也支持使用类名调用实例方法,但此方式需要手动给 self 参数传值。例如:

#类名调用实例方法,需手动给 self 参数传值
pl = PythonLanguage()
PythonLanguage.say(pl)


总结

在Python中,类方法和静态方法是非常有用的工具,它们可以让我们在类的级别上执行操作,而不是在实例级别上执行操作。类方法可以使用类的属性和方法,而静态方法则不能。使用这些方法可以让我们更好地组织代码,并提高代码的可读性和可维护性。在使用这些方法时,我们需要根据具体的情况来选择使用类方法还是静态方法。


内容摘自:

https://blog.csdn.net/weixin_44412085/article/details/129968953

http://c.biancheng.net/view/4552.html

关于博主
北京南城网络及弱电【张工】为您提供:
校园网、楼宇、村镇、园区,光纤网络覆盖,无线覆盖 华为|H3c|锐捷|爱快|panabit等品牌,路由、交换机、AC、AP 无源光网络(PON)设备,布署、调试、维运,等服务...
应急/临时光纤熔接...[藤仓22S]
博文为学习python所写:内容摘自网络、学习笔记、记事备忘。
QQ:872876353,欢迎交流学习、加Q注明来意。

诗文鉴赏

《满江红》· 岳飞
落星侵晓没,
残月半山低。
怒发冲冠,
凭栏处、潇潇雨歇。
抬望眼、仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。
莫等闲、白了少年头,
空悲切。
源于生活-记录日常
The site based on python 3 with flask...