私は昨年Pythonを学び、新しいプロジェクトでPythonに戻ってきました。私は最初に問題にぶつかりましたが、ドキュメントを何度も調べた後も、まだ困惑しています。単純なことだと信じなければなりませんが、見つかりません。問題は次のとおりです。
私はファイルに次のように設定しています:
class Wrapper(object):
def __init__(self, title=None):
self.header = Thing("HEADER")
if title is not None:
self.header.content.append( Thing("TITLE", content=[str(title)]) )
self.body = Thing("BODY")
self.content = Thing("COMPLETE", content=[self.header, self.body])
class Thing(object):
def __init__(self, name, content=[]):
self.name = name
self.content = content
次に、インタラクティブなプロンプトから次のようにします。
>>> import things
>>> a = things.Wrapper("This is a title")
さて、この時点で、のbody
属性は名前が付いa
たThing
インスタンスで"BODY"
ありcontent
、空のリストで構成されていると思います。私が見つけて驚いたのは、それが実際には同じインスタンスをcontent
含むリストであるということです。"TITLE"
a.header.content
>>> a.header.name
'HEADER'
>>> a.header.content
[<test.Thing object at 0xb752290c>]
>>> a.body.name
'BODY'
>>> a.body.content
[<test.Thing object at 0xb752290c>]
>>> a.body.content[0].name
'TITLE'
>>> a.body.content[0].content
['This is a title']
私は一生の間、そのようa.body.content
に割り当てられた方法を理解することはできません。誰かがこれに光を当てることができますか?