如何在类上设置默认属性访问权限?

lab*_*oid 3 python

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

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

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

class page:
    def __init__(self):
        self.text = ''
        self.length = 0
Run Code Online (Sandbox Code Playgroud)

我创建一个实例并用一本书的内容填充它,如下所示:

...    
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
Run Code Online (Sandbox Code Playgroud)

现在在程序的其余部分中,99.9%的时间我引用了页面的文本.因此,为了让我的生活更轻松,我希望能够使用以下内容来引用页面:

if 'Anna' in war_and_peace[15]:
    ...
Run Code Online (Sandbox Code Playgroud)

代替

if 'Anna' in war_and_peace.page[15].text:
    ...
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?(对不起,如果已经回答;我可能使用了错误的搜索条款!)

谢谢!

eca*_*mur 10

一个__getitem__上覆盖book会给你这样的:

def __getitem__(self, item):
    return self.page[item].text
Run Code Online (Sandbox Code Playgroud)