【发布时间】:2020-01-31 16:53:57
【问题描述】:
我有一个类可以保存一个名字,每个名字可以记录一个电话号码和一个电子邮件地址:
class address_book:
def __init__(self,name):
self._name=name
self._info=dict()
def name(self):
return self._name
def add_number(self,number):
self._info['phone']=number
def add_email(self,e_mail):
self._info['email']=e_mail
def __str__(self):
return f'Name: {self._name}\nInfo:{self._info}'
首先我想问你是否正确,因为这是我用 Python 编写的第一个类。
其次,我想问你有没有办法同时打印这个类包含的所有元素。例如:
a=address_book('James')
a.add_number(8975436)
a.add_email('James11@xxx')
b=address_book('Carl')
b.add_number(96543436)
b.add_email('carl128@xxx')
c=address_book('Ann')
[...]
如果我想把它们都打印出来,我必须写:
print(str(a),'\n',str(b),'\n',str(c))
没关系,因为我的通讯簿中只保存了 3 个名字,但是当保存的名字很多或我不知道确切的数字时,我该怎么做才能一次看到它们?
【问题讨论】:
-
把它们全部放在一个列表中。
-
这个类名字不好。这只是一种联系方式。
address_book类应包含联系人列表。 -
@Barmar 带有 for 循环?
-
你可以打印列表
print(*list_of_addresses, sep='\n') -
地址簿应该是一个真正的字典,名字作为键,信息作为值。
标签: python python-3.x