Форум сайта python.su
Доброго времени всем. Собственно, ситуация. Есть класс. В классе множество методов, (маленькие чекеры), все они принимают одинаковые аргументы. Можно ли как нить, сделать так, что бы цикл for проходился по всем этим методам(то есть вызывал их по очередности)?
Офлайн
Mr.AndersonДа
Можно ли как нить, сделать так, что бы цикл for проходился по всем этим методам
Офлайн
Офлайн
Stright Не нужен ни какой инспектор!
>>> class A(object): ... def metod1(self): ... pass ... def metod2(self): ... pass >>> for attr in ( getattr(A, x) for x in dir(A) if not x.find("_") == 0 ): ... print attr <unbound method A.metod1> <unbound method A.metod2>
Офлайн
RodegastВот только почему то не выполняются сам функции.
Stright Не нужен ни какой инспектор!
class A(object): def check1(self): print('1') def check2(self): print('2') def check3(self): print('3')
Офлайн
Mr.Anderson
Вот только почему то не выполняются сам функции.
print attr
Офлайн
ShamanПонятно, что нет.
Офлайн
1) Не функции, а методы.
2) Я то думал что ты сам догадаешься
>>> class A(object): ... def metod1(self): ... print 1 ... def metod2(self): ... print 2 >>> obj = A() >>> for attr in ( getattr(obj, x) for x in dir(obj) if not x.find("_") == 0 ): ... attr() 1 2
Отредактировано Rodegast (Май 7, 2017 12:06:12)
Офлайн
RodegastСпасибо за помощь. Я был близок)
1) Не функции, а методы.2) Я то думал что ты сам догадаешься
Офлайн