美文网首页
python内置装饰器

python内置装饰器

作者: 萝卜枣 | 来源:发表于2021-10-25 10:34 被阅读0次

    1.@property
    把类内方法当成属性来使用,必须要有返回值,相当于getter。

    class ZhangSan:
      first_name = 'San'
      last_name = 'Zhang'
    
      @property
      def full_name(self):
          return self.last_name + self.first_name
    
      zhangSan = ZhangSan()
      print(zhangSan.full_name) #当成属性来使用
    

    2.@staticmethod
    静态方法,不需要表示自身对象和自身类的cls参数,就跟使用函数一样。该方法可以直接被调用无需实例化。

    class ZhangSan:
        @staticmethod
        def say_hello():
            print('同学你好')
    
    ZhangSan.say_hello()
    
    # 实例化调用也是同样的效果
    # 有点多此一举
    ZhangSan.say_hello() 等价于
    xiaoming = XiaoMing()
    xiaoming.say_hello()
    

    3.@classmethod
    类方法,不需要self参数,但第一个参数需要是表示自身类的cls参数。该方法可以直接被调用无需实例化,相对于staticmethod的区别在于它会接收一个指向类本身的cls参数

    class ZhangSan:
        name = '张三'
    
        @classmethod
        def say_hello(cls):
            print('同学你好, 我是' + cls.name)
            print(cls)
    
    ZhangSan.say_hello()
    

    相关文章

      网友评论

          本文标题:python内置装饰器

          本文链接:https://www.haomeiwen.com/subject/juwyoltx.html