在Python中,将对象类型初始化为相应的空值。

3

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

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

现在,我想编写一个方法,将每个新添加的属性初始化为其对应的空值。例如,numberint,一旦添加,新状态应为:
self.current_properties = {'name': 'user_1', 'number': 0}

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

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

我该如何完成这个任务?


每次添加新属性 - 你如何“添加”新属性? - Jundiaius
2个回答

4
您可以从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'}

3

使用:

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

current_properties['number'] = valid_properties['number']()
current_properties['point_data'] = valid_properties['point_data']()

print(current_properties)
# {'name': 'user_1', 'number': 0, 'point_data': []}

如何实现?
>>> k = int()                                               
>>> k                                                       
0                                                           
>>> k = list()                                              
>>> k                                                       
[]

int():

int()函数接受数字或字符串作为参数,并将其转换为整数对象,同时还可以指定数字的进制。如果没有传递参数,则返回0

list():

list()函数接受一个迭代器作为参数,如果没有传递参数,则创建一个空列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接