Python iterating through object attributesПеребор элементов в объектах
я нашел этот вопрос при попытке понять итерации над объектами, и нашел этот ответ от Эрик Лещинского:
class C:
a = 5
b = [1,2,3]
def foobar():
b = "hi"
c = C
for attr, value in c.__dict__.iteritems():
print "Attribute: " + str(attr or "")
print "Value: " + str(value or "")
который произвел текст, который перечислял все атрибуты класса C
, включая функции и скрытые атрибуты (в окружении подчеркивания), как показано ниже:
python test.py
Attribute: a
Value: 5
Attribute: foobar
Value: <function foobar at 0x7fe74f8bfc08>
Attribute: __module__
Value: __main__
Attribute: b
Value: [1, 2, 3]
Attribute: __doc__
Value:
Теперь, я и как отфильтровать «скрытые» атрибуты из моей итерации, но есть ли способ отфильтровать все функции? Фактически, я ищу, в классе C
, только атрибуты a
и b
, перечисленные последовательно, без __module__
и __doc__
информации и без каких-либо функций, которые находятся в C
.
https://docs.python.org/2/library/functions.html#callable – Jasper
если вызываемый (атрибут) – dylrei
возможный дубликат [Получение атрибутов класса] (http://stackoverflow.com/questions/9058305/getting-attributes-of-a-class) – Kasramvd