3

Python(2.7)新手在这里。我想要做的是引用一个类的实例,将给定的属性作为“默认”返回,而不必指定该属性。我想这样做是因为绝大多数时候我指的是一个实例,它是访问这个属性。

例如,假设我有几个类来描述一本书:

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 回答