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)