首页 > 解决方案 > 在python中将对象类型初始化为相应的空值

问题描述

我有一个包含属性字典的类,current_properties可以添加的属性及其相应的数据类型在valid_properties字典中预定义:

self.valid_properties = {'name': str, 'number': int, 'point_data': list}
self.current_properties = {'name': 'user_1'}

现在,我想编写一个方法,将每个新添加的属性初始化为其对应的空值。例如,number一旦int添加,新状态应该是:

self.current_properties = {'name': 'user_1', 'number': 0}

如果我添加point_data新状态应该是:

self.current_properties = {'name': 'user_1', 'number': 0, 'point_data':[]}

我怎样才能完成这项工作?

标签: python

解决方案


valid_properties您可以使用要插入的任何键来查找类型,然后用于()实例化该类型的对象。

>>> valid_properties = {'name': str, 'number': int, 'point_data': list}
>>> current_properties = {'name': 'user_1'}
>>> current_properties
{'name': 'user_1'}
>>> current_properties['number'] = valid_properties['number']()
>>> current_properties
{'number': 0, 'name': 'user_1'}

推荐阅读