【发布时间】:2017-12-12 21:16:53
【问题描述】:
非常感谢任何帮助!谢谢
我有一个字典,由从这样的文件中提取的行组成:
Danny Shalev, 050-1111111, aaa@aaa.com
Gil Rom, 050-2222222, bbb@bbb.com
Tal Yakir, 050-3333333, ccc@ccc.com
编辑:我的目标是像这样打印出字典:
Danny Shalev - 050-1111111 - aaa@aaa.com
Gil Rom - 050-2222222 - bbb@bbb.com
Tal Yakir - 050-3333333 - ccc@ccc.com
名字是键,其余的是值。
我已经编写了将文件行转换为 dict 的代码,并且我想以特定格式打印出字典中的所有值,该格式将逐行,以“-”分隔。我已经编写了函数 print_person,要以这种格式打印出来,我只想将此函数(来自上一个类)应用到我的 dict 中。
代码如下:
class Person:
def __init__(self, name, phone,email):
self.name = name
self.phone = phone
self.email = email
def print_person(self):
return (str(self.name)+" - "+str(self.phone)+" - "+str(self.email))
class AddressBook:
def __init__ (self):
self.contactsdict = {}
def add(self, newContact):
self.contactsdict[newContact.name] = newContact.phone + " - " + newContact.email
def search(self, name):
return (self.contactsdict.get(name))
def addFromFile(self, fileName):
f = open("contacts.txt")
for line in f:
(key, val, val2) = line.split(",")
self.contactsdict[key] = val + " - " + val2
f.close
def printAddressBook(self):
for key, val in self.contactsdict.items():
Person.print_person
address = AddressBook() # make an instance
p1=Person("Danny Shalev","050-1111111","aaa@aaa.com")
print (p1.print_person())
address.add(p1)
address.addFromFile("contacts.txt")
address.printAddressBook()
我认为问题出在这部分,因为我不知道如何使用该方法:
def printAddressBook(self):
for key, val in self.contactsdict.items():
Person.print_person
【问题讨论】:
-
然后我得到这个错误:TypeError: print_person() missing 1 required positional argument: 'self'
标签: python-3.x class dictionary file-io