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
我创建了一个实例并用一本书的内容填充它:
...
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:
...
我怎么能这样做? (对不起,如果已经回答;我可能使用了错误的搜索条件!)
谢谢!
答案 0 :(得分:10)
book
上的__getitem__
覆盖会为您提供:
def __getitem__(self, item):
return self.page[item].text