这两个命名元组有什么区别:
Point = collections.namedtuple('Point','x,y')
和
Point = collections.namedtuple('Point',['x','y'])
两者似乎在功能上对我来说都是相同的(使用python 3.8.0)
这两个命名元组的确相同:-)
>>> import collections
>>> Point1 = collections.namedtuple('Point','x,y')
>>> Point2 = collections.namedtuple('Point',['x','y'])
>>> Point1._fields
('x', 'y')
>>> Point2._fields
('x', 'y')
field_names是一个字符串序列,例如['x','y']。另外,field_names可以是单个字符串,每个fieldname用空格和/或逗号分隔,例如'x y'或'x,y'。
没有没有区别。命名元组支持序列和以名称为输入的逗号分隔或空格分隔的字符串。
field_names
是一个字符串序列,例如['x', 'y']
。 或者],field_names
可以是单个字符串,每个字段名用空格和/或逗号分隔,例如'x y'
或'x, y'
。粗体强调我的;
'x, y'
或'x y'
字符串语法只是拼写字段名称的另一种方法。
您可以检查两个对象上的namedtuple._fields
attribute以确认它们确实具有相同的字段名称:
namedtuple._fields