为什么不能在python列表中使用<somename>?

2024-09-22 20:37:54 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我们不能手动在列表中输入:

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'">]

它工作得很好,但是当我手动尝试向列表提供上述元素时,它失败了

有人能解释为什么会这样吗


Tags: textnode元素列表错误xmlelement手动
1条回答
网友
1楼 · 发布于 2024-09-22 20:37:54

在尖括号之间打印的内容只是类的可读表示,例如:

>>> class Test:
...  pass
... 
>>> a = Test()
>>> print(a)
<__main__.Test object at 0x7f76070b6198>
>>> repr(a)
'<__main__.Test object at 0x7f76070b6198>'

<...>只是一个文本字符串,我们实际上可以通过^{} and ^{}函数控制它打印的内容:

>>> 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&b):list = [a, b]

奖励提示:
list是Python中的内置名称(指list类型(type([]) == list);您可能不想将其用作变量名或函数名(但由于Python很酷,因此它允许您这样做)

相关问题 更多 >