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的方法
  • 相关阅读:
    人生的意义:
    instancetype和id的区别,objective-c
    iOS多线程系统整理 swift
    系统整理 精讲 swift 泛型
    swift学习笔记7
    swift学习笔记6
    swift学习笔记5
    [iOS开发日记]简易计算器
    [ocUI日记]UIImage和UIImageview
    [ocUI日记]UIwindow和UIview
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12668335.html
Copyright © 2011-2022 走看看