我是Python的新手,所以这个问题可能很简单。但我试图在互联网上搜索并没有得到解释。
我试图模仿处理xml的简单脚本,它导入以下内容
from xml.etree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
问题:为什么要这么做?
为什么我不能说import xml.etree
而其他人就像祖先一样。甚至只有import xml
。我试过了,但它没有用。为什么?
答案 0 :(得分:0)
你应该可以这样做:
from xml.etree.ElementTree import *
但是,这是一种糟糕的形式,因为您可能会有来自不同包导入的冲突名称。总是最好指定你想要的确切类,并根据需要对它们进行别名 - 像Element
这样的类名可能会非常常见,你可能会发生碰撞。
我建议基本上坚持你的原创:
from xml.etree import ElementTree
from xml.etree.ElementTree import Element, SubElement
我认为你遇到的混乱是你有一个以文件命名的混合类,这些文件中还包含其他类。
第一个将从文件ElementTree
导入类ElementTree
,这是惯例。第二行将导入类Element
和SubElement
,这些类也恰好位于文件ElementTree
内。
这也会有效,而且更简洁:
from xml.etree.ElementTree import ElementTree, SubElement, Element