在Python中用对象属性创建列表

ste*_*han 0 python

这里真的很简单.ben创建之后,无论如何我可以调用ben [0]来呼叫name和ben [1]来调用age?

我想知道是否有办法以列表的形式访问这些属性.

class People():
    def __init__(self, name, age):

ben=People("ben", "10")
Run Code Online (Sandbox Code Playgroud)

aba*_*ert 5

听起来你正试图建立一个namedtuple:

>>> import collections
>>> People = collections.namedtuple('People', 'name age')
>>> ben = People("ben", 10)
>>> ben.name
'ben'
>>> ben[0]
'ben'
Run Code Online (Sandbox Code Playgroud)

如果您希望类中的其他功能超出具有属性的范围,您可以直接继承namedtuple而不是直接使用它:

>>> class People(collections.namedtuple('People', 'name age')):
...     def __str__(self):
...         return self.name.title() + '!'
>>> ben = People("ben", 10)
>>> print(ben)
Ben!
>>> ben
People(name='ben', age=10)
>>> ben.name
'ben'
>>> ben[0]
'ben'
Run Code Online (Sandbox Code Playgroud)