python之类的成员(方法)

本文深入探讨Python中的类方法、静态方法及普通方法的区别与应用场景,通过实例代码展示如何使用这些方法,以及它们在不同场景下的优劣。

 

class Foo:
    def bar(self):
        print('bar')

obj = Foo()
obj.bar()

# obj = Foo()
# Foo.bar(obj)

方法:

普通方法:保存在类中,由对象来调用(上面代码中两个方法都可以,但是不管是用对象调用还是用类调用,都要首先定义一个对象,而且一般都用第一种方法调用),self参数是对象。

静态方法:保存在类中,由类直接调用,并且不用self参数

类方法:保存在类中,由类直接调用,cls参数是当前类

class Foo:
    def bar(self):
        print('bar')

    # 加装饰器装饰后,变成静态方法,self就不是必须的了
    @staticmethod
    def sta():
        print('123')

    @staticmethod
    def stat(a1, a2):
        print(a1, a2)

Foo.sta()  # 123
Foo.stat(1, 2)  # 1 2
class Foo:
    def bar(self):
        # self是对象
        print('bar')

    # 加装饰器装饰后,变成静态方法,self就不是必须的了
    @staticmethod
    def sta():
        print('123')

    @staticmethod
    def stat(a1, a2):
        print(a1, a2)

    @staticmethod
    def classmd(cls):
        # cls是类名,不依赖对象
        print(cls)
        print('classmd')


Foo.classmd(Foo)
# <class '__main__.Foo'>
# classmd

应用场景:

如果对象中需要保存一些值,执行某功能时需要使用对象中的值,用普通方法。

不需要任何对象中的值时,用静态方法。(类方法没有太大的用处,它的功能可以通过静态方法实现)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值