Скажем, у меня есть функция foo
в большом проекте Python с именованным аргументом bar
:
def foo(bar=42):
do_something_with_bar(bar)
Эта функция часто вызывается в кодовой базе при вызовах, которые используют или опускаютименованный параметр bar
.
Теперь скажите, что я изменяю эту функцию, потому что в ней есть ошибка, и я хочу начать использовать функцию из определенного пакета, который по совпадению также называется bar
.Я не могу использовать функцию bar
, когда импортирую ее следующим образом:
from package import bar
def foo(bar=42):
# how can I use the package.bar function here?
do_something_with_bar(bar)
Я мог бы использовать что-то вроде:
from package import bar as package_bar
Но этот файл также содержит много вызовов bar
так что это не надо.
Единственный способ увидеть эту работу - переименовать метод bar
в package
:
from package import bar
package_bar = bar
def foo(bar=42):
do_something_with_bar(package_bar(bar))
или импортировать его нескольковремена (не проверено):
from package import bar, bar as package_bar
def foo(bar=42):
do_something_with_bar(package_bar(bar))
Есть ли какой-нибудь способ переименовать параметр bar
в функции foo
без всех вызовов функции foo
, прерывающей всю кодовую базу?