zoukankan      html  css  js  c++  java
  • @property装饰器

    @property可以将一个方法的调用方式编程‘属性调用’:

    class E:
        @property
        def salary(self):
            print('salary run.....')
            return 10000
    
    e=E()
    print(e.salary)   #这里salary变成了属性调用,以前要e.salary()这样调用
    #e.salary=20000 #AttributeError: can't set attribute 报错,不能设置
    
    
    结果
    
    salary run.....
    10000
    class Emploree:
        def __init__(self,name,salary):
            self.__name=name
            self.__salary=salary
    
        def get_salary(self):
            return self.__salary
    
        def set_salary(self,salary):
            if 1000<salary<50000:
                self.__salary=salary
    
            else:
                print('错误,重新输入')
    
    
    emp1=Emploree('Jim',2000)
    emp1.set_salary(999)
    
    结果:
    错误,重新输入

    下面换@property 

    class Emploree:
        def __init__(self,name,salary):
            self.__name=name
            self.__salary=salary
    
        @property
        def salary(self):
            return self.__salary
        @salary.setter
        def salary(self,salary):
            if 1000 < salary < 50000:
                self.__salary = salary
    
            else:
                print('错误,重新输入')
    '''
        def get_salary(self):
            return self.__salary
    
        def set_salary(self,salary):
            if 1000<salary<50000:
                self.__salary=salary
    
            else:
                print('错误,重新输入')
    '''
    
    emp1=Emploree('Jim',2000)
    print(emp1._Emploree__salary)
    print(emp1.salary)  #可以直接调用
    emp1.salary=10   #报错
    emp1.salary=20000   #设置新的值
    print(emp1.salary)
    
    结果
    2000
    2000
    错误,重新输入
    20000
  • 相关阅读:
    01_Struts2概述及环境搭建
    CSRF跨站请求伪造
    XSS跨站脚本攻击
    文件包含漏洞
    文件上传漏洞
    PHP常见代码执行后门函数
    SQL注入总结
    [转]Android PopupWindow的使用和分析
    [转] 基于XMPP协议的Android即时通信系
    [转]Android推送方案分析(MQTT/XMPP/GCM)
  • 原文地址:https://www.cnblogs.com/inuyashalove/p/12807137.html
Copyright © 2011-2022 走看看