Differences between obj.attribute and getattr(obj, "attribute")

Johannes Schneider johannes.schneider at galileo-press.de
Wed Dec 11 11:11:44 CET 2013


thank you guys.
On 11.12.2013 10:36, Chris Angelico wrote:
> 2013/12/11 Johannes Schneider <johannes.schneider at galileo-press.de>:
>> can somebody explain me the difference between accessing attributes via
>> obj.attribute and getattr(obj, "attribute")?
>>
>> Is there a special reason or advantage when using getattr?
> You use getattr when the attribute name comes from a string, rather
> than a literal. There's no advantage to it when you know ahead of time
> what attribute you're looking for. It's useful when you iterate over
> dir(), for instance:
>
> print("You can call...")
> n=0
> for attr in dir(x):
>      if callable(getattr(x,attr)):
>          print("x.%s()"%attr)
>          n+=1
> print("...",n," options.")
>
> ChrisA


-- 
Johannes Schneider
Webentwicklung
johannes.schneider at galileo-press.de
Tel.: +49.228.42150.xxx

Galileo Press GmbH
Rheinwerkallee 4 - 53227 Bonn - Germany
Tel.: +49.228.42.150.0 (Zentrale) .77 (Fax)
http://www.galileo-press.de/

Geschäftsführer: Tomas Wehren, Ralf Kaulisch, Rainer Kaltenecker
HRB 8363 Amtsgericht Bonn




More information about the Python-list mailing list