python - 在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':[]}
我怎样才能完成这项工作?
解决方案
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'}
推荐阅读
- laravel - Laravel - 将数据透视表中的值与相关表进行比较
- python - 如何使用带代理的不和谐 python 机器人?
- excel - Excel - SumIF Cell Value is between date range & another Cell is False
- apache-spark - How to set group.id for consumer group in kafka data source in Structured Streaming?
- php - INSERT INTO or Update
- android - Android - 活动关闭时取消 JobIntent 服务
- automation - 如何使用 Automation Anywhere 从 Citrix 环境中提取表?
- angular - 如何将星云图标添加到角度项目?
- c# - Slow query with Entity Framework when using Include with Func predicate
- java - How to run raw query in ElasticSearch 6.5.1 using JavaHighLevelRestClient?