例如,我们无法手动输入列表:
list = [<element1>, <element2>, <element3>...]
会抛出错误:
>>> list = [<DOM Text node "u'\n\t'">]
File "<stdin>", line 1
list = [<DOM Text node "u'\n\t'">]
^
SyntaxError: invalid syntax
而我们可以将XML解析元素中的元素放入列表中,这不会导致任何语法错误。我在列表中列出了一些XML元素:
[<DOM Text node "u'\n\t'">,
<DOM Element: APPLE at 0x18a4648>,
<DOM Text node "u'\n\t\n\t'">,
<DOM Element: GOOGLE at 0x18a4968>,
<DOM Text node "u'\n\t\n\t'">,
<DOM Element: LENOVO at 0x18a4b48>,
<DOM Text node "u'\n\t\n\t'">,
<DOM Element: SAMSUNG at 0x18a4be8>,
<DOM Text node "u '\n'">]
工作正常,但是当我手动尝试使用上面的元素提供列表时,它会失败。
任何人都可以解释为什么会这样吗?
答案 0 :(得分:0)
无论在有角度的括号之间打印什么,都只是一个人类可读的类,例如:
>>> class Test:
... pass
...
>>> a = Test()
>>> print(a)
<__main__.Test object at 0x7f76070b6198>
>>> repr(a)
'<__main__.Test object at 0x7f76070b6198>'
<...>
只是一串文字,我们实际上可以控制用__str__()
and __repr__()
函数打印的内容:
>>> class Banana:
... def __str__(self):
... return 'I am probably yellow!'
...
... def __repr__(self):
... return 'I am probably yellow!'
...
>>> b = Banana()
>>> print(b)
I am probably yellow!
>>> repr(b)
I am probably yellow!
如果要创建包含这些变量的列表,请使用变量名称(在本例中为a
&amp; b
):list = [a, b]
奖金提示:
list
是Python中的内置名称(引用list
类型(type([]) == list
);您可能不希望将其用作变量或函数名称(但因为Python很酷) ,无论如何它都会允许你这样做。)