[python] vypis promennych dane instance

Petr Messner petr.messner na gmail.com
Čtvrtek Červenec 9 16:03:54 CEST 2009


Osobně mě jako první napadl spíš dir (je to podle mě druhá
nejdůležitější funkce v Pythonu, hned po help), takto:

>>> class A:
...  def __init__(self):
...   self.a = 12
...   self.z = "aaaa"
...
>>> a = A()
>>> dir(a)
['__doc__', '__init__', '__module__', 'a', 'z']


2009/7/9 Vlada Macek <macek na sandbox.cz>:
> Petr Zlamal wrote:
>> Lze nejak v pythonu vypsat vsechny promenne nalezejici dane instanci.

> Python primo nerozlisuje, ktere z atributu jsou "promenne" a ktere metody.
> Vase potreba je nicmene pofiderni a naznacuje neoptimalni navrh programu
> -- jen velmi zridka je neco takoveho potreba. Neznal ale podrobnosti.
> Nicmene je to samozrejme mozne napriklad takto:
...
>    ...    def tiskni(self):
>    ...     print "Atributy instance: ", self.__dict__


S argumentem o neoptimálním návrhu souhlasím, pokud jsou takové věci
součástí programu; při vývoji myslím není špatné si občas interaktivně
něco takto prohlédnout.

PM


Další informace o konferenci Python