Допустим, у меня есть следующий класс:
class Foo:
def __init__(self):
pass
def do_something(self, x):
return x
bar = Foo()
baz = Foo()
bru = Foo()
print(bar.do_something(3))
print(baz.do_something(4))
print(bru.do_something(5))
Я хочу сделать рефакторинг do_something
магической функцией __call__
, чтобы класс теперь выглядел так:
class Foo:
def __init__(self):
pass
def __call__(self, x):
return x
Есть ли способ сделать это в Pycharm таким образом, что использование инструмента рефакторинга на do_something
приведет к рефакторингу print(bar.do_something(3))
в print(bar(3))
, в дополнение к baz
и bru
или любым другим гипотетическим вызовам этих объектов__call__
найдено в какой-либо другой части проекта? Прямо сейчас это рефакторинг к print(bar.__call__(3))