四十五.python中的内置装饰器@staticmethod/@classmethod/@property

内置装饰器的存在是方便在类里自定义的一个函数方法。

其中前两者@staticmethod和@classmethod它们使用时会有自己参数。而调用的时候也和普通函数方法不一样,类一般调用函数方法时是需要用实例化对象去调用,而通过内置装饰器,可以不需要实例化对象而直接去调用函数。而后者@property则是在调用函数方法时去掉了括号

@staticmethod和@classmethod调用的函数方法格式: 类名.方法名(参数1,参数2...)

@property调用函数格式: 实例化对象名.函数方法

示例如下:

#coding:utf-8
class people:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    @staticmethod
    def print_newname(x,y):
        print "参数不需要带self,调用参数时可以直接使用参数,我是%s,而我是%s"  %(x,y)
    @classmethod
    def print_newage(cls,newage):
        print "参数默认带cls,调用参数时可以直接使用参数,我今年%d" %newage
    @property
    def print_age(self):
        print "%s的年龄为%d" %(self.name,self.age)

people.print_newname("张三","李四") #通过类直接调用函数,不需要实例化对象
people.print_newage(18)  #通过类直接调用函数,不需要实例化对象

people1=people("小明",27) #实例化对象
people1.print_age #注意这里使用@property后,调用该函数后面不需要加括号

打印结果如下:
参数不需要带self,调用参数时可以直接使用参数,我是张三,我是李四
参数默认带cls,调用参数时可以直接使用参数,我今年18
小明的年龄为27

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值