如何解决使用类作为电话簿字典
class PhoneBook:
def __init__(self):
self.contacts = {}
def __str__(self):
return str(self.contacts)
def add(self,name,mobile=None,office=None,email=None):
self.contacts["Name"] = name
self.contacts["Mobile"] = mobile
self.contacts["Office"] = office
self.contacts["Email"] = email
obj = PhoneBook()
obj.add("Kim",office="1234567",email="kim@company.com")
obj.add("Park",office="2345678",email="park@company.com")
print(obj)
当我将 .add 方法添加到类变量时,我尝试让 PhoneBook 类将字典列表相加,但是每次类变量调用 PhoneBook() 类时,都会进行字典初始化,并且只有最后一个数据保留在字典(我想:S)
有没有办法解决这个问题?谢谢。
解决方法
问题是,您使用相同的字典键 "Name"
来存储您的联系人。相反,将真实姓名作为字典的键,此键将保存另一本字典。例如:
import pprint
class PhoneBook:
def __init__(self):
self.contacts = {}
def __str__(self):
return pprint.pformat(self.contacts,width=30)
def add(self,name,mobile=None,office=None,email=None):
self.contacts[name] = {
"Mobile": mobile,"Office": office,"Email": email,}
obj = PhoneBook()
obj.add("Kim",office="1234567",email="kim@company.com")
obj.add("Park",office="2345678",email="park@company.com")
print(obj)
打印:
{'Kim': {'Email': 'kim@company.com','Mobile': None,'Office': '1234567'},'Park': {'Email': 'park@company.com','Office': '2345678'}}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。