Я пытаюсь создать класс Python (назовите его CLASS
), в котором есть основная функция (назовите ее FUNC
), которую большинство пользователей захотят использовать.
В этом случае я бы хотел, чтобы пользователь мог вызывать имя класса без необходимости использовать скобки перед избранной функцией, например ::
CLASS(B, C)
вместо CLASS().FUNC(B, C)
Это чисто эстетично, но это означает, что пользователям, которые будут использовать FUNC и не заботиться о других функциях, которые они могут явно вызывать, им не нужно писать раздражающие фигурные скобки.
Вот простой пример кода типа класса, который я бы создал, где основная функция (которую я назвал FUNC для непрерывности) использует другие функции в классе:
class Example:
def dummy_operation(self,A):
return A*2.
def FUNC(self,B,C):
A = self.dummy_operation(B)
result = A + C
return result
Так вот, Example
заменяет CLASS
на удобочитаемость.
Один из способов сделать это выглядит как использование оператора if '__main__'
(см. - Основной вызов Python в классе ).
Однако, поскольку FUNC принимает аргументы B
и C
, это вернет ошибку:
if __name__ == '__main__':
Example().target_function()
Out:
TypeError: target_function() missing 2 required positional arguments: 'B' and 'C'
Есть ли способ передать Example(B,C)
, где на самом деле он вызывает Example().FUNC(B,C)
но можно все же позвонить Example().dummy_operation(A)
, если потребуется?
Заранее большое спасибо!