[python] jméno typu

superman feed na centrum.cz
Sobota Listopad 11 01:54:40 CET 2006


>     >>> def clsname(obj):
>     ...     return '%s.%s' % (obj.__class__.__module__, obj.__class__.__name__)
>     ...
> 
>     >>> clsname(3)
>     '__builtin__.int'
> 
>     >>> clsname(None)
>     '__builtin__.NoneType'

Děkuji, opravdu to funguje. Akorát mě mate, že

a = 3
dir (a.__class__)

neukáže ani __module__, ani __name__. Asi nějaká obrana před moc 
zvědavými lidmi.

Mimochodem jsem teď zjistil, že Python nedokáže použít číslo jako objekt:

a = 3
a.__add__(4)

vypíše 7,

ale

3.__add__(4)

vypíše syntax error.

Dělám to špatně, a nebo je to jenom špatně v Pythonu?


Miloslav Ponkrác



Další informace o konferenci Python