python staticmethod()函数,classmethod()函数,property()函数

本文详细介绍了Python中三种特殊的方法装饰器:staticmethod、classmethod及property的使用方式与应用场景。通过具体的代码示例,展示了如何利用这些装饰器来增强类的功能,并提供了一种更加灵活和强大的面向对象编程手段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python 内置函数staticmethod
python staticmethod()返回函数的静态方法----该方法不强制要求传递参数
@staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样

class a(object):

    @staticmethod
    def fun():
        print('hello world')

a_object = a()
a_object.fun()

a.fun()
# hello world
# hello world

python 内置函数classmethod
classmethod修饰符对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以用来调用类的属性,类的方法,实例化对象等

class A(object):
    bar = 1
    
    def func(self):
        print('foo')

    @classmethod
    def fun2(cls):
        print('func2')
        print(cls.bar)
        cls().func()

A.fun2()
# 打印结果为:
func2
1
foo

python 内置函数property
装饰器 即:在方法上应用装饰器

class Goods:
    """python3中默认继承object类
        以python2、3执行此程序的结果不同,因为只有在python3中才有@xxx.setter  @xxx.deleter
    """
    @property
    def price(self):
        print('@property')

    @price.setter
    def price(self, value):
        print('@price.setter')

    @price.deleter
    def price(self):
        print('@price.deleter')

# ############### 调用 ###############
obj = Goods()
obj.price          # 自动执行 @property 修饰的 price 方法,并获取方法的返回值
obj.price = 123    # 自动执行 @price.setter 修饰的 price 方法,并将  123 赋值给方法的参数
del obj.price      # 自动执行 @price.deleter 修饰的 price 方法
打印结果为:
@property
@price.setter
@price.deleter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值