Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入语句不一致_Python_Django - Fatal编程技术网

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
的语义不同;第一个导入在模块(作为参数给出)下定义的符号(可能是模块本身),而第二个导入模块。