zoukankan      html  css  js  c++  java
  • python学习之特殊魔法__get__,__set__,__delete__

    #要保证 age 属性 它只能是int类型且大小处于0到100之间
    class Student(object):
    def __init__(self):
    pass

    def get(self):
    return self.age

    def set(self,age):
    if isinstance(age,int) and 0<age<100:
    self.age=age
    else:
    print("请输入合法的年龄")
    stu=Student()
    stu.set(100)
    stu.set(10)
    print(stu.get())

    #场景:age属性 一共有十几个
    class Int_validation(object):
    def __get__(self, instance, owner):
    return self.value

    def __set__(self, instance, value):
    if isinstance(value,int) and 0<value<100:
    self.value=value
    else:
    print("请输入合法的数字")

    def __delete__(self, instance):
    pass

    class Student(object):
    age=Int_validation()

    stu=Student()
    stu.age=50
    print(stu.age)

    # 1.首先我们要把共同的校验封装在一个类里也就是 Int_validation 类,
    # 2.重写两个魔法函数 (get 和set)
    # 3.age=Int_validation() 这个是关键,age 本来是个对象,放在类里当作了Student类属性
    # 4.实例化对象stu给age进行赋值 ,它会自动调用Int_validation get的方法
  • 相关阅读:
    CSS Sprite
    使用float和display:block将内联元素转换成块元素的不同点
    [POJ 1185] 炮兵阵地
    [POJ 1947] Rebuilding Roads
    [HDU 1561] The more, The Better
    [HDU 1011] Starship Troopers
    [POJ 1155] TELE
    [HDU 2196] Computer
    [HDU 1520] Anniversary party
    [HDU 5029] Relief grain
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12668335.html
Copyright © 2011-2022 走看看