用python中的类编写通讯录

用python中的类编写通讯录,python,Python,我对通讯录有问题。 以下是有关该问题的一些信息: 通讯簿允许查询朋友的朋友(就像LinkedIn对连接的查询):1级的朋友是直接朋友,2级的朋友是朋友的朋友 我试图解决这个问题,但我仍然不知道如何解决最后的步骤 这是我的密码: class AddressBook: def __init__(self): """Creates empty address book""" self.book = {} def addName(self, name, a

我对通讯录有问题。 以下是有关该问题的一些信息:

通讯簿允许查询朋友的朋友(就像LinkedIn对连接的查询):1级的朋友是直接朋友,2级的朋友是朋友的朋友

我试图解决这个问题,但我仍然不知道如何解决最后的步骤

这是我的密码:

class AddressBook:
    def __init__(self):
        """Creates empty address book"""
        self.book = {}
    def addName(self, name, address):
        """Adds name to address book, with address and
        no friends"""
        self.book[name] = address
    def addFriend(self, name, friend):
        """Adds friend to the set of friends of name"""
        self.book[name] = friend
    def address(self, name):
        """Returns the address of name"""
        n=set()
        for e in self.book:
            if self.book[e] == name:
                n.add(e)
        return n
    def friends(self, name, degree):
        """Returns the set of all friends up to the specified
        degree"""
        n=set()
        for name in self.book:
            if self.book[name] == degree:
                n.add(name)
        return n
以下是一些正确的输出:

    >>>a = AddressBook()
    >>>a.addName('Ann', 34); a.addName('Bill', 62); a.addName('Barb', 95)
    >>>a.addName('Emma', 56); a.addName('Fred', 46); a.addName('Jane', 90)
    >>>a.addName('Joe', 33); a.addName('Lisa', 21); a.addName('Lucy', 18)
    >>>a.addName('Mary', 52); a.addName('Sue', 12)
    # Transitivity
    # Fred -> Barb -> Jane -> Emma -> Lisa
    # Fred -> Sue
    #                 Jane -> Mary
    >>>a.addFriend('Fred', 'Barb'); a.addFriend('Fred', 'Sue')
    >>>a.addFriend('Barb', 'Jane'); a.addFriend('Jane', 'Emma')
    >>>a.addFriend('Jane', 'Mary'); a.addFriend('Emma', 'Lisa')
    >>> a.friends('Fred', 0)
    set()
    >>> a.friends('Fred', 1)
    {'Barb', 'Sue'}
    >>> a.friends('Fred', 2)
    {'Barb', 'Jane', 'Sue'}
    >>> a.friends('Fred', 3)
    {'Mary', 'Barb', 'Jane', 'Sue', 'Emma'}
    >>> a.friends('Fred', 4)
    {'Barb', 'Emma', 'Mary', 'Lisa', 'Sue', 'Jane'}
但是,我的输出是all
set()

你们能给我一些反馈和提示来解决这个问题吗


谢谢

我不明白问题是什么,你想让朋友作为字符串而不是作为一个集合返回吗?考虑一个地址簿,除了地址,跟踪某人的朋友。我不明白下面的三个语句如何工作<代码>自我。书[名字] =朋友< /代码>,代码>自我。我也不明白什么是“问题”。您正在尝试创建一个社交网络,但一次只创建一个链接。我看不出瞬变性是如何建立的