1class Descriptor: 2 def __get__(self, obj, cls): 3 print('get') 4 print(type(obj) is Main) 5 print(cls is Main) 6 return 'result' 7 8 def __set__(self, obj, val): 9 print('set') 10 print(type(obj) is Main) 11 print(val) 12 13 def __delete__(self, obj): 14 print('delete') 15 print(type(obj) is Main) 16 17class Main: 18 Forward = Descriptor() 19 20m = Main() 21try: 22 m.__class__ 23except AttributeError: 24 print("SKIP") 25 raise SystemExit 26 27r = m.Forward 28if 'Descriptor' in repr(r.__class__): 29 print('SKIP') 30 raise SystemExit 31 32print(r) 33m.Forward = 'a' 34del m.Forward 35