クラス:
class Book(object):
def __init__(self, title, author):
self.title = title
self.author = author
def get_entry(self):
return "{0} by {1} on {}".format(self.title, self.author, self.press)
それから私の本のインスタンスを作成します:
In [72]: mybook = Book('HTML','Lee')
In [75]: mybook.title
Out[75]: 'HTML'
In [76]: mybook.author
Out[76]: 'Lee'
属性「self.press」を初期化せず、get_entryメソッドで使用していることに注意してください。データを入力してください。
mybook.press = 'Murach'
mybook.price = 'download'
これまで、vars
を使用してすべてのデータ入力を指定できます。
In [77]: vars(mybook)
Out[77]: {'author': 'Lee', 'title': 'HTML',...}
コンソールでmybookに関する多くのデータをハードタイプします。get_entryメソッドを呼び出そうとすると、エラーが報告されます。
mybook.get_entry()
ValueError: cannot switch from manual field specification to automatic field numbering.
これはすべてconsole.Iでインタラクティブモードになります。入力されたデータを大事にし、さらにファイル内のmybook
オブジェクトをpickleします。ただし、欠陥があります。インタラクティブモードでどのようにレスキューできますか。または、最初からやり直す必要があります。
return "{0} by {1} on {}".format(self.title, self.author, self.press)
それは機能しません。位置を指定する場合、最後までそれを行う必要があります。
return "{0} by {1} on {2}".format(self.title, self.author, self.press)
あなたの場合、最善の方法はpythonを自動的に扱う:
return "{} by {} on {}".format(self.title, self.author, self.press)