Здавствуйте.
Функция является методом класса.
Допустим:
1) она вызвается из другого метода - один результат
2) пользователем в контексте объекта - другой
Возможно такое сделать? Не хочется писать еще одну фунцию, если можно обойтись одной.
JOHN_16нет, функция без аргументов. Но если других вариантов нет, то можно добавить агрументы поумолчанию
Передавать в качестве параметра функции флаг который будет определять что возвращать - такой вариант подойдет?
def f(a, b): if a > 0: return a * b else: return a + b
def f1(a, b): return a * b def f2(a, b): return a + b if a > 0: n = f1(a, b) else: n = f2(a, b)
Valera_idi_syuda
Возможно такое сделать?
import inspect class A: def sam(self): if 'self.' + inspect.stack()[0].function in inspect.stack()[1].code_context[0]: print('Hey, I was invoked from another class method...') else: print('Hey, I was called as an instance method...') def sim(self): self.sam() a = A() a.sam() # Hey, I was called as an instance method... a.sim() # Hey, I was invoked from another class method...