Мне кажется, что вам нужен другой класс.
class Response:
# ... Some dark magic here ...
def site_parser(self, atom):
return ResponseParser(self, atom)
class ResponseParser:
def __init__(self, res, atom):
self.atom = atom
self.res = res
self.base_url = "https://example.com/"
def category1(self):
# ... Do stuff ...
def category2(self):
# ... Do stuff ...
Затем вы называете это с помощью
result = Response()
result.site_parser("atom").category1()
Если вы действительно настаиваете на том, чтобы избавиться от скобок наsite_parser
вызов, вы можете переместить бит "atom"
в categoryN
методы и превратить site_parser
в свойство , но IMO, вероятно, просто запутает людей больше всего на свете.
Как функциональный программист, я люблю вложенные функции и замыкания так же, как и следующий парень, но мне кажется, что, исходя из приведенного вами ограниченного примера, наличие второго вспомогательного класса, вероятно, будет более читабельнымспособ сделать это в этом случае.