码迷,mamicode.com
首页 > 其他好文 > 详细

描述符的应用

时间:2019-02-24 23:04:30      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:pre   expec   描述   val   people   3.3   not   name   set   

 1 class Typed:
 2     def __init__(self,key,expected_type):
 3         self.key=key
 4         self.expected_type=expected_type
 5     def __get__(self, instance, owner):
 6         print(get方法)
 7         return instance.__dict__[self.key]
 8     def __set__(self, instance, value):
 9         print(set方法)
10         if not isinstance(value,self.expected_type):
11             raise TypeError(%s 传入的类型不是%s %(self.key,self.expected_type))
12         instance.__dict__[self.key]=value
13     def __delete__(self, instance):
14         print(delete方法)
15         instance.__dict__.pop(self.key)
16 
17 class People:
18     name=Typed(name,str) #t1.__set__()  self.__set__()
19     age=Typed(age,int) #t1.__set__()  self.__set__()
20     def __init__(self,name,age,salary):
21         self.name=name
22         self.age=age
23         self.salary=salary
24 
25 # p1=People(‘alex‘,‘13‘,13.3)
26 p1=People(213,13,13.3)

 

描述符的应用

标签:pre   expec   描述   val   people   3.3   not   name   set   

原文地址:https://www.cnblogs.com/yuanjie2019/p/10428418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!