1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
class C1: def __call__(self, val): print('call', val) return 'item' class C2: def __getattr__(self, k): pass c1 = C1() print(c1(1)) c2 = C2() try: print(c2(1)) except TypeError: print("TypeError")