__str__ 字典方法的正确用法 (kwargs)
Correct usage of __str__ method for a dictionary (kwargs)
我的任务是正确打印 class 的 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='jhony@smith.com')
print (jhon)
我最后需要有:
Additional information:
telegram : @jhony
email : jhony@smith.com
但我只有:
我真的尝试过遍历它,创建列表,但我一无所获,因为 ___str___
方法只能使用 str
个对象。我如何通过 kwargs 参数并以 key : value
?
的格式获取它
您需要遍历 self.additional
引用的 dict
。
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.items()]))
我的任务是正确打印 class 的 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='jhony@smith.com')
print (jhon)
我最后需要有:
Additional information:
telegram : @jhony
email : jhony@smith.com
但我只有:
我真的尝试过遍历它,创建列表,但我一无所获,因为 ___str___
方法只能使用 str
个对象。我如何通过 kwargs 参数并以 key : value
?
您需要遍历 self.additional
引用的 dict
。
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.items()]))