2012-06-04 33 views
-2

我試圖存儲對象,是能夠做到這一點successfully..But我有問題,而treiving it..Error如下Python的擱置無法檢索對象

給出person.py

class Person: 
    def __init__(self, name, age, pay=0, job=None): 
     self.name = name 
     self.age = age 
     self.pay = pay 
     self.job = job 

    def lastname(self): 
     return self.name.split()[-1] 

    def giveraise(self,percent): 
     #return self.pay *= (1.0 + percent) 
     self.pay *= (1.0 + percent) 
     return self.pay 

Manager.py

from Person import Person 

class Manager(Person): 
    def giveRaise(self, percent, bonus=0.1): 
     self.pay *= (1.0 + percent + bonus)   
     return self.pay 

update_db_classes.py

import shelve 
from Person import Person 
from Manager import Manager 
bob = Person('Bob Smith', 42, 30000, 'software') 
sue = Person('Sue Jones', 45, 40000, 'hardware') 
tom = Manager('Tom Doe', 50, 50000) 

db = shelve.open('class-shelve') 
db['bob'] = bob 
db['sue'] = sue 
db['tom'] = tom 
db.close() 

代碼以檢索對象.. dump_db_classes.py

import shelve 
db = shelve.open('class-shelve') 
for key in db: 
    print(key, '=>\n ', db[key].name, db[key].pay) 

bob = db['bob'] 
print(bob.lastName()) 
print(db['tom'].lastName()) 

錯誤: C:\ Python27 \基本> dump_db_classes.py BOB => Bob Smith的30000 告=> 蘇瓊斯40000 湯姆=> 湯姆·多伊50000 回溯(最近通話最後一個): 文件 「C:\ Python27 \基礎\ dump_db_classes.py」,8號線,在 打印(bob.lastName()) AttributeError的:「人'對象沒有屬性'lastName'

+0

Firstable你問這個問題之前閱讀蟒蛇基礎! –

回答

1

Python區分大小寫。您致電bob.lastName(),但Person方法是.lastname()。該錯誤消息是想告訴你:

AttributeError: 'Person' object has no attribute 'lastName'