gadzhi15
@gadzhi15

Вызов всех методов класса в одну строку. Возможно?

Python 2.7. Имеется класс, с 5 методами и конструктор __init___ . В определенной ситуации нужно вызвать все методы класса. Возможно ли в Python осуществить это в одну строчку?

В Java наподобие этого есть Builder.
  • Вопрос задан
  • 453 просмотра
Решения вопроса 1
@FireGM
Не совсем понимаю зачем, но чтобы вызывать функции в одну строку, достаточно в функции в конце возвращать self.

class S():
    kk = 0
    def m(self):
        kk+=1
        return self
    
    def p(self):
        print(self.kk)
        return self

s = S().m().m().m().p().m().m().p()

выведет "3" и "5"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
import inspect
for _, m in inspect.getmembers(obj, predicate=inspect.ismethod): m()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы