在我正在进行的项目中,我将许多较大的文件分成较小的部分,以便于使用。一个特定的示例是从Django中基于函数的 View 创建基于类的 View :
# app/views/LoginView.py
class LoginView(View):
...
# urls.py
from app.views import LoginView
urlpatterns = [
# Here, I have to use LoginView twice
url(r'^login', LoginView.LoginView.as_view())
]
上面,我想调用它时必须两次使用
LoginView
,因为导入LoginView
会导入模块,而不是模块中的方法,即使它们是相同的名称也是如此。理想情况下,我希望避免每次都调用LoginView.LoginView
。在Javascript中,我只能说
export default function my_function() { ... }
而无需命名,并且在导入时是默认值,例如import my_function from './some_module.js';
有什么办法可以在Python 3中做类似的事情?我不想做
from app.views.LoginView import LoginView
,因为,尤其是在一个大型Django项目中以及像urls.py
这样的文件中,将每个导入放在单独的行上是不可行的。 最佳答案
您可以使用LoginView
的app.views
将__init__.py
作为名称导入app.views
下。
在app/views/__init__.py
中:
from LoginView import LoginView
用
urls.py
import app.views
urlpatterns = [
url(r'^login', app.views.LoginView.as_view())
]
关于python - Python 3中的默认导出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38927979/