繁体   English   中英

为什么我的程序出错(python)?

[英]Why is my program erroring (python)?

此代码用于模拟合并 2 个通讯录。

我的代码在第 18 行无明显原因出错,并出现短语错误。 我很确定措辞是正确的并且程序应该运行,但是每次我遇到短语错误时。

 class ContactBook:
        """
        This class represents a book of contacts.
        It can store names and phone numbers.
        """

        def __init__(self):
        # Create an empty dictionary
        self.contacts = {}

    def __repr__(self):
        # Just print a string version of the dictionary
        return str(self.contacts)
    def __add__(self, other):
        con2 = ContactBook()
        for name in self.contacts:
            if name in other.contacts and self.contacts[name] != other.contacts[name]:
                con2.contacts[name] = self.contacts[name] + " or " + other.contacts[name]
            else:
                con2.contacts[name] = self.contacts[name]
        for name in other.contacts:
            if name not in self.contacts:
                con2.contacts[name] = other.contacts[names]
        return con2

    def add_contact(self, name, number):
        # Adds a name --> phone number pair to
        # the dictionary.
        self.contacts[name] = number

#############################
# Program starts here

cb1 = ContactBook()
cb2 = ContactBook()

cb1.add_contact("Jonathan", "444-555-6666")
cb1.add_contact("Puneet", "333-555-7777")
cb2.add_contact("Jonathan", "222-555-8888")
cb2.add_contact("Lisa", "111-555-9999")



# The result of this should be a book that
# looks like this:
#
# {
#     "Jonathan": "444-555-6666 or 222-555-8888",
#     "Puneet": "333-555-7777",
#     "Lisa": "111-555-9999"
# }
cb3 = cb1 + cb2
print cb1
print cb2
print cb3

我认为这里的names是一个错字:

con2.contacts[name] = other.contacts[names]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM