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

名称定义调用关键字使用场景
实例方法至少需要一个self参数先实例化类,实例.方法名()方法内部涉及到实例对象属性的操作
类方法至少需要一个cls参数类名.方法名() 或者 实例.方法名()@classmethod需要对类属性,即静态变量进行限制性操作
静态方法无默认参数类名.方法名() 或者 实例.方法名()@staticmethod与实例对象无关,但与当前类有关;实际使用方法和函数一样

在类方法内不能调用实例方法 和实例变量,可以调用其他类方法和 类变量

# 定义函数
class MethodTest:
    # 类属性
    aa = ''

    # 实例方法 可以调用类属性
    def demo_method(self):
        self.aa = '实例方法'
        print(f"这个是一个{self.aa}")

    # 类方法
    @classmethod
    def class_method(cls):
        cls.aa = '类方法'
        print(f"这个是一个{cls.aa}")

        # cls.demo_method()   # 类方法内不能调用实例方法 和 实例变量
        # cls.static_method() # 类方法内可以调用其他类方法 和 类变量

    # 静态方法 与实例对象无关
    @staticmethod
    def static_method():
        bb = '静态方法'
        print(f"这个是一个{bb}")


# 方法的调用
# 实例方法需要先实例化类,实例.方法名
p = MethodTest()
p.demo_method() # 这个是一个实例方法

# 类方法和静态方法可以直接调用,类名.方法名()
MethodTest.class_method()   # 这个是一个类方法
MethodTest.static_method()	# 这个是一个静态方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值