Комментарии 4
Спасибо, конечно, но ответы на большинство вопросов с pyobject выложили еще пару лет назад: dimonvideo.ru/blogs/blog/Virtuos86/955
0
1. Как получить список всех атрибутов объекта
print dir(Foo)
А как же метаклассы? =)
3. Как получить список методов объекта
Поскольку функции и методы в Python являются объектами первого рода (вроде правильно написал?), то для проверки будем использовать функцию getattr, которая возвращает сам аттрибут объекта и функцию callable, которая и осуществляет проверку.
print [arg for arg in dir(Foo) if callable(getattr(Foo, arg))]
# или
print filter(lambda arg: callable(getattr(Foo, arg)), dir(Foo))
Более правильный вариант, учитывая что callable выпилили из 3.х и что вариант из примера вытащит так же все callable-атрибуты, которые не являются методами:
import inspect
print [name for name, item in inspect.getmembers(Foo) if inspect.ismethod(item)]
+1
docs.python.org/library/index.html
Мне кажется, любому python-прораммисту это нужно прочитать, прежде чем вопросы задавать.
P.S. izip лучше в данном случае zip, потому что создает итератор, вместо списка, который вам не нужен.
Мне кажется, любому python-прораммисту это нужно прочитать, прежде чем вопросы задавать.
P.S. izip лучше в данном случае zip, потому что создает итератор, вместо списка, который вам не нужен.
0
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Ответы на вопросы с PyObject