Mr.Anderson
Май 5, 2017 03:29:43
Доброго времени всем. Собственно, ситуация. Есть класс. В классе множество методов, (маленькие чекеры), все они принимают одинаковые аргументы. Можно ли как нить, сделать так, что бы цикл for проходился по всем этим методам(то есть вызывал их по очередности)?
Rodegast
Май 5, 2017 10:54:02
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>
Mr.Anderson
Май 7, 2017 07:06:11
Rodegast
Stright Не нужен ни какой инспектор!
Вот только почему то не выполняются сам функции.
class A(object):
def check1(self):
print('1')
def check2(self):
print('2')
def check3(self):
print('3')
Не печатаются цифры.
Mr.Anderson
Май 7, 2017 11:35:50
Shaman
Понятно, что нет.
Но как сделать, что бы выполнялась?
Понимаю, возможно туплю дико, но все же.
Rodegast
Май 7, 2017 12:03:03
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
Mr.Anderson
Май 7, 2017 13:28:48
Rodegast
1) Не функции, а методы.2) Я то думал что ты сам догадаешься
Спасибо за помощь. Я был близок)