[python] Problem s metodami
Petr Mach
gsl na seznam.cz
Pátek Únor 17 14:03:41 CET 2006
> >>> type(cls.__dict__['method'])
> <type 'function'>
> >>> type(cls.method)
> <type 'instancemethod'>
>
> Vyraz cls.method vrati objekt typu instancemethod, v kterem je
> zapouzdrena prislusna funkce. Jelikoz se zapouzdreni nikde nekesuje,
> je pri kazdem vyskytu vyrazu `cls.method' vytvoren novy objekt typu
> instancemethod. Proto pro porovnani pres operator `is' dostavame False.
Je ale poněkud zvláštní a je potřeba si dát pozor na to, že ten "novy
objekt typu instancemethod" má pořád stejné id:
>>> id(c.m)
-1208131876
>>> id(c.m)
-1208131876
>>> id(c.m)
-1208131876
>>> id(c.m) == id(c.m), c.m is c.m
(True, False)
Další informace o konferenci Python