我有一个任务来正确打印类的kwargs
参数。这是我的代码:
class Contact:
def __init__(self, name, surname, number, selected=None, **kwargs):
self.name=name
self.surname=surname
self.number=number
self.selected=selected
self.additional=kwargs
def __str__(self):
if self.selected==None:
selected='No'
else:
selected='Yes'
return 'Name: ' + self.name+'\n' + \
'Surname: ' + self.surname+ '\n' + \
'Phone: ' + self.number + '\n' + \
'In selected: ' + selected + '\n' + \
'Additional information: ' + '\n' + \
str(self.additional.keys()) + '\n' + \
str(self.additional.values())
if __name__=='__main__':
jhon = Contact('Jhon', 'Smith', '+71234567809', telegram='@jhony', email='[email protected]')
print (jhon)
我最后需要具备:
Additional information:
telegram : @jhony
email : [email protected]
但是我所能拥有的是:
我真的尝试过尝试,创建列表,但我一无所获,因为___str___
方法只能使用str
对象。如何查看kwargs参数并将其采用key : value
的格式?
您需要遍历dict
引用的self.additional
。
def __str__(self):
return ('Name: ' + self.name + '\n'
+ 'Surname: ' + self.surname+ '\n' +
+ 'Phone: ' + self.number + '\n' +
+ 'In selected: ' + selected + '\n' +
+ 'Additional information: ' + '\n' +
+ '\n'.join([f' {k}: {v}' for k, v in self.additional]))