zoukankan      html  css  js  c++  java
  • Python面相对象之类里面常用的装饰器(3)

    在类里面,可以设置类的全局变量,也就是静态字段,让实例化的所有对都具有该属性

    class god:
        country = 'china'#这个字段在类里面保存,只有一份,叫静态字段,表示每个对象具有的属性
    
    
        def __init__(self,name):
    
            self.name =name#普通字段,保存在实例化之后的对象中
    
    
    
        def shit(self):#普通方法,保存在类中,实例化之后的对象也可以通过反射找到类方法,如hasattr
            print('shit')
        def she(self):
            print('黄赌毒')
    
    
    obj = god('Jay')
    print(obj.country)
    

      类里面有几个常用的装饰器

    class god:
        country = 'china'
    
        def __init__(self,name):
            self.name =name
        @classmethod#这个是类方法,保存在类里面,通过类直接调用
        def xxxx(cls):#必须要有cls参数,全称class,方法被调用时候类名被当做cls传进去,相对于静态方法的特殊情况,就是多了一个参数
            print('xxxxx',cls)
        def shit(self):
            print('shit')
        @staticmethod#这是静态方法,装饰类里面的方法,使该方法变为静态方法,没有了self,保存于类里面
        def she():
            print('黄赌毒')
    
    god.she()#静态方法直接使用类调用,一般静态方法都使用类访问
    god.xxxx()
    print(god)
    obj = god('Jay')
    obj.she()#实例也可以直接调用,但不被建议
    

      执行结果如图

    还有一个property

    class god:
        country = 'china'
    
        def __init__(self,name):
            self.name =name
    
    
        @property#原来通过实例的调用(加括号)才能访问,现在通过字段就能访问了,实际是将方法伪造成了字段
        def shit(self):#这个特性不能再传参数了
            return '%s shit' % self.name
    
    obj = god('Jay')
    r1=obj.shit
    print(r1)
    

     结果如图

    我们也可以用shit.setter装饰器更改获得的字段

    如下代码,不过这些方法很少用

    class god:
        country = 'china'
    
        def __init__(self,name):
            self.name =name
    
    
        @property#原来通过实例的调用(加括号)才能访问,现在通过字段就能访问了,实际是将方法伪造成了字段
        def shit(self):#这个特性不能再传参数了
            return '%s shit' % self.name
        @shit.setter#这个方法用于接收传回来的参数,进行一些更改,专门用于设置
        def shit(self,value):
            print(value)
            self.name=value#更改属性
    
    obj = god('Jay')
    print(obj.shit)
    obj.shit='b'
    print(obj.name)
    

      结果如下图

     概括起来,类里面主要结果如下

  • 相关阅读:
    存储类&作用域&生命周期&链接属性
    关于mysql数据库的备份和还原
    Centos 7下mysql的安装与配置
    基于Apache+php+mysql的许愿墙网站的搭建
    关于php留言本网站的搭建
    linux下面桌面的安装
    时间同步ntp服务的安装与配置
    通过挂载系统光盘搭建本地yum仓库的方法
    linux系统root用户忘记密码的重置方法
    linux系统的初化始配置
  • 原文地址:https://www.cnblogs.com/xiaobeibei26/p/6436380.html
Copyright © 2011-2022 走看看