From: Jan Kaliszewski on 25 Jan 2010 15:57 24-01-2010, 00:38:29 Terry Reedy <tjreedy(a)udel.edu> wrote: > On 1/23/2010 10:56 AM, Arnaud Delobelle wrote: >> thinke365<thinke365(a)gmail.com> writes: >> >>> for example, i may define a python class: >>> class A: >>> def sayHello(): >>> print 'hello' >>> >>> a = A() >>> a.attr1 = 'hello' >>> a.attr2 = 'bb' >>> >>> b = A() >>> a.attr2 = 'aa' >>> >>> how can i know whether an object have an attribute named attr1? >> >> hasattr(a, 'attr1') > > or > try: a.attr1 > except AttributeError: pass or -- if you are interested only in attributes contained by attributes dict of this particular object (and no in attributes of its type, base types nor attributes calculated on-demand by __getattr__/__getattribute__ methods) -- you can check its __dict__ -- * using vars(), e.g.: if 'attr1' in vars(a)... * or directly (less elegant?), e.g.: if 'attr1' in a.__dict__... But please remember that it doesn't work for instances of types with __slots__ defined (see: http://docs.python.org/reference/datamodel.html#slots). Regards, *j -- Jan Kaliszewski (zuo) <zuo(a)chopin.edu.pl>
|
Pages: 1 Prev: Total maximal size of data Next: Authenticated encryption with PyCrypto |