请教一个python问题:from XXX import XXX

像类似于fromXXXimportXXX这样的语句,比如说:fromlxmlimportetree我想问一下,etree是一个module吗?如果是的话那lxml是什么,... 像类似于from XXX import XXX这样的语句,比如说:from lxml import etree
我想问一下,etree是一个module吗?如果是的话那lxml是什么,还是一个module吗?
其实原话是这样的:
try:
from lxml import etree
except ImportError:
import xml.etree.ElementTree as etree

书上只是举了一个try...except语句的用例,但我对module、package之类的概念一直模糊,所以就顺便问问了,xml.etree.ElementTree这是什么格式?ElementTree是一个module,etree是一个package?那xml是什么?

谢谢!
展开
 我来答
againinput4
推荐于2018-02-27 · TA获得超过2407个赞
知道大有可为答主
回答量:1446
采纳率:70%
帮助的人:637万
展开全部
你可以理解为:
对于:
from lxml import etree

from Module import Function或Class等
这个只是从模块中导入一个或几个函数或类的做法。
另外一个常见的是
import Module
你这里就是:
import lxml

是把整个模块中得东西,包括上面那单个etree都导入->所以你后面的程序就都可以使用了。

更多解释,可参考:
【教程】Python中的内置的模块 和第三方的模块
【已解决】Python中导入子文件夹中的模块

(此处不给贴地址,请自己用google搜标题,就可以找到地址了)

============
“xml.etree.ElementTree这是什么格式?”
可以看做是:
package.module.function

package.module.attribute

"ElementTree是一个module,etree是一个package?"
你的理解错了。
同上,ElementTree是一个function或attribute
etree是一个module

“那xml是什么?”
xml是package

详细解释,自己看:
【整理】Python中的module,library,package之间的区别
hhyhoo
2013-01-06
知道答主
回答量:8
采纳率:0%
帮助的人:4.4万
展开全部
from Module import something
至于something是什么,只要是定义这这个module里的全局的anything都可以。
例如:
文件,explain.py
----------------------------------------------------
class aclass(object):
.........
.........

def doSomething():
...........
...........

version = '1.0'
----------------------------------------------------
那我们可以有如下的写法:
from explain import aclass
from explain import doSomething
from explain import version
或者:
from explain import *

之所以要在import后面加一个确定的目标对象,是为了减少import一些不必要的东东。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
home我是逗逗呀
2018-03-30 · TA获得超过1.2万个赞
知道小有建树答主
回答量:74
采纳率:100%
帮助的人:1.4万
展开全部

你可以理解为:

对于:

from lxml import etree

from Module import Function或Class等

这个只是从模块中导入一个或几个函数或类的做法。

另外一个常见的是

import Module

你这里就是:

import lxml

是把整个模块中得东西,包括上面那单个etree都导入->所以你后面的程序就都可以使用了。

解决循环import的方法主要有几种:

1.延迟导入

即把import语句写在方法或函数里面,将它的作用域限制在局部。这种方法的缺点就是会有性能问题。

2.将from xxx import yyy改成import xxx;xxx.yyy来访问的形式  

3.组织代码

出现循环import的问题往往意味着代码的布局有问题。可以合并或者分离竞争资源。合并的话就是都写到一个文件里面去。分离的话就是把需要import的资源提取到一个第三方文件去。总之就是将循环变成单向。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逆流_7
2013-01-04 · TA获得超过416个赞
知道答主
回答量:156
采纳率:0%
帮助的人:160万
展开全部
你好
在from aaa import bbb中:
aaa是一个module
bbb是一个方法或者类
bbb是在aaa下的
就像from copy import deepcopy一样
这样讲希望你可以理解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式