从已设置的值创建 namedtuple 实例

Creating namedtuple instance from already set values

我有一个namedtuple这样的

course_summary_struct = namedtuple(
                'CourseSummary',
                ['id', 'display_name', 'location', 'display_coursenum', 'display_organization']
)

我想动态更新 namedtuple 直到我确定它包含所有必需的信息。

所以我用步骤中的所有值更新 course_summary_struct

现在我需要像这样从 course_summary_struct 创建一个实例

summery = course_summary_struct() #<===== Issue here

我想用 course_summary_struct 中的所有信息填充 summery

我该怎么做?

元组是不可变的,创建后无法更改。

您可以使用 recordclass.recordclass.

在实际创建命名元组实例之前等到您拥有所有必要的信息。

data = {}
data['id'] = 3
# ...
data['display_name'] = 'Chem 101'
# ...
summary = course_summary_struct._make([data[x] for x in course_summary_struct._fields])

如果您的字典中有数据,您可以这样做

course_summary_struct = namedtuple(
                'CourseSummary',
                ['id', 'display_name', 'location', 'display_coursenum', 'display_organization'])
# Your data
data = {
    'id': 1,
    'display_name': 'naren',
    'location': 'Bengaluru',
    'display_coursenum': 11,
    'display_organization': ':D'}

course_summary_struct(**data)

# Creates > CourseSummary(id=1, display_name='naren', location='Bengaluru', display_coursenum=11, display_organization=':D')

或者,如果您有其他方法,请使用 setattr

setattr(course_summary_struct, 'id', 11)