#python
Вопрос:
У меня есть такой класс, как этот:
# in bar.py
class Bar:
...
@staticmethod
def foo():
...
Есть ли способ импортировать Bar.foo
в другой файл python, но переименовать его, чтобы он назывался просто foo
? Я пробовал import bar
, from bar import Bar
но ничего из этого не работает.
Комментарии:
1.Один из вариантов:
import bar
foo = bar.Bar.foo
Ответ №1:
Вы могли бы просто сделать
from bar import Bar
foo = Bar.foo
Комментарии:
1. Есть ли простой способ сделать эти псевдонимы? Существует довольно много функций,
Bar
которые я хотел бы импортировать2. Я бы рекомендовал вам просто импортировать класс и позвонить
Bar.foo()
и т. Д.3. @JRR вы рассматривали возможность не использовать кучу статических методов, а просто использовать функции уровня модуля? В противном случае просто используйте
Bar.foo()
4. @JRR вы не можете импортировать элементы объекта ни на каком языке, просто используйте сам объект или переместите функцию за пределы класса(они в любом случае статичны), а затем импортируйте их по своему усмотрению
Ответ №2:
из бара.Бар импорт foo как bar_Bar_foo
особенно полезно, когда вам нужен как requests
модуль, так и Flask.requests
в одном файле, чтобы избежать столкновения:
from Flask import requests as f_requests
import requests
Комментарии:
1. Панель находится в своем собственном файле bar.py. значит, это не сработает, как я думал?
2. Вы не можете импортировать метод из класса. Я получаю
ModuleNotFoundError
.3. отредактировано —
from _filename_ import _classname_
или дажеfrom _filename_._classname_ import _method_
, но не уверен, что последнее сработает