Python 导入语句不一致
为什么下面的第二条语句即使在功能上与第一条语句相同,也不起作用Python 导入语句不一致,python,django,Python,Django,为什么下面的第二条语句即使在功能上与第一条语句相同,也不起作用 from django.shortcuts import render # works import django.shortcuts.render as render # doesn't work 因为渲染是一个函数,而您只能导入模块 您可以从\u模块导入\u对象,但只能将\u模块作为任何对象导入错误告诉您原因:渲染不是模块 一个可能更清楚的示例-让我们尝试从数学模块导入一个函数: >>> import mat
from django.shortcuts import render # works
import django.shortcuts.render as render # doesn't work
因为
渲染
是一个函数,而您只能导入
模块
您可以从\u模块导入\u对象
,但只能将\u模块作为任何对象导入错误告诉您原因:渲染
不是模块
一个可能更清楚的示例-让我们尝试从数学
模块导入一个函数:
>>> import math.pow
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pow
>>> from math import pow
>>>
导入math.pow
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为pow的模块
>>>从数学导入pow
>>>
pow
函数不是模块,但符号(即函数)可以从模块导入(math
)
render()
in。它不是一个模块。这是因为您必须运行import django
或从django运行(无论您想要什么)import(您的func或var)
。Python不喜欢调用import(您的模块)。(无论路径是什么)
,因为这样您将导入一个路径。另外,django.shortcuts.render
不是现有模块,您必须导入render
这是一个函数。原因是render()
是来自django.shortcuts
模块的函数
您只能导入python中的模块,不能直接运行
因此,您可以:
from module import specific_function
或者干脆
import module
或仅为模块别名
import module as xyz
或为模块中的特定函数别名
from module import specific_function as abc
请不要使用图像来传达问题的重要部分。它们使问题变得不可搜索且残疾人无法访问。这两个功能并不相同,您可以从django编写。如果我在包含代码的图像中添加不可见的标题,这会解决可搜索性问题吗?是,但是真的没有必要。代码是文本;作为文本添加。@WillemVanOnsem有趣的是,我不知道人们实际上花了那么多精力回答一个问题,比如复制粘贴代码和“调查”它。在这种情况下,我可以理解为什么图像可能不是一个好主意。我假设当他们遇到一个问题时,他们要么马上知道答案,要么就转到下一个问题。因此from
语句可以在库中导入模块和函数,而import
语句只能在库中导入模块?正确from
和import
的语义不同;第一个导入在模块(作为参数给出)下定义的符号(可能是模块本身),而第二个导入模块。