#python #class #methods
Вопрос:
Я видел различные вопросы, которые касаются одного из них, но никогда не встречал, чтобы метод, передаваемый в качестве аргумента, активно использовался self
. Вот MWE (или, точнее, MNWE):
class Object: def __init__(self, number1, number2): self.value1 = number1 self.value2 = number2 def method1(self): return self.value1 def method2(self): return self.value2 def super_method(self, method): return 2 * self.method() example = Object(4, 6) example.super_method(method1)
Комментарии:
1. Можете ли вы уточнить, что вы думаете
method1
обexample.super_method(method1)
этом? Вы намерены это сделатьObject.method1
илиexample.method1
, может быть?
Ответ №1:
super_method
Просто получает метод и вызывает его, и вам нужно передать метод объекта
class Object: # ... def super_method(self, method): return 2 * method() example = Object(4, 6) print(example.super_method(example.method1)) # 8 print(example.super_method(example.method2)) # 12
Если вы хотите передать метод без example
ссылки, это будет
class Object: # ... def super_method(self, method): return 2 * method(self) example = Object(4, 6) print(example.super_method(Object.method1)) # 8 print(example.super_method(Object.method2)) # 12