タイトルが意味をなさないとは分かりませんが、基本的には(アドレス帳のような)友達を追跡するクラスがあります私は既存の名前のセットに友人を追加する関数を作成する必要がある部分です。だから、私のコードの初めは次のようになっています。"Self"変数をクラス内で反復する(属性エラー)
class SocialAddressBook:
def __init__(self):
self.book= []
def addName(self, name, address):
self.book.append([name, address, set()])
"""Adds name to address book, with address and no friends"""
うまく動作します。その後、私に'list' object has no attribute 'list'
エラーを与える部分:
def addFriend(self, name, friend):
for k in range(len(self.book.list[k])):
if self.book[k][0] == name:
は、私の考えでは、リストを反復処理すると、既存のリストに追加することでしたが、構文は間違いなくループのための私を投げている(何もしゃれが意図していない)と私は私は今これについてどうすればいいのかわからない。
いくつかのテストコード:
a.addFriend('Fred', 'Barb'); a.addFriend('Fred', 'Sue')
a.addFriend('Barb', 'Jane'); a.addFriend('Jane', 'Emma')
a.addFriend('Jane', 'Mary'); a.addFriend('Emma', 'Lisa')
ありがとうございました!
なぜ 'self.book.list'をやっているのですか?リストには' list'プロパティがあると思います。 –
通常、Pythonのコレクションを反復処理するためのインデックスは必要ありません。単にbook_name、address、friendsの場合はself.book: '、次にif if book_name == name:'は、何が後になるかによって決まります。おそらく 'friends.add(friend)'でしょうか? –