3

Python (2.7) の初心者です。私がやりたいのは、クラスのインスタンスへの参照が、そのプロパティを指定することなく、特定のプロパティを「デフォルト」として返すことです。インスタンスを参照するほとんどの時間は、この 1 つのプロパティにアクセスするためです。

たとえば、本を説明するクラスがいくつかあるとします。

class book:
    def __init__(self):
        self.title = ''
        self.author = ''
        self.page = {}

class page:
    def __init__(self):
        self.text = ''
        self.length = 0

インスタンスを作成し、次のように本の内容を入力します。

...    
war_and_peace = book()
page_count = 0
for page in pages:  #Let's say pages is a list of strings each of a page of the book
    pagenum += 1
    war_and_peace.page[pagenum] = page

プログラムの残りの部分では、99.9% の時間でページのテキストを参照しています。私の人生を少し楽にするために、以下を使用してページを参照できるようにしたいと思います。

if 'Anna' in war_and_peace[15]:
    ...

それ以外の

if 'Anna' in war_and_peace.page[15].text:
    ...

これについてどうすればよいですか?(これが回答されている場合は申し訳ありません;おそらく間違った検索用語を使用しています!)

ありがとう!

4

1 に答える 1

10

__getitem__をオーバーライドすると、次のようにbookなります。

def __getitem__(self, item):
    return self.page[item].text
于 2012-09-06T16:20:39.313 に答える