Python Shelve无法检索obj

2024-05-29 04:55:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图存储对象,并成功地做到了..但我有问题,当树保存它..错误如下所示

在人.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

在经理.py在

^{pr2}$

更新数据库_类.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()

检索对象的代码。。 转储数据库_类.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\Basics>;dump\db_类.py 鲍勃=>; 鲍勃·史密斯30000 苏=>; 苏·琼斯40000 汤姆=>; 汤姆·多伊50000 回溯(最近一次呼叫): 文件“C:\Python27\Basics\dump\db_类.py“,第8行,英寸 打印(鲍勃.姓()) AttributeError:“Person”对象没有属性“lastName”


Tags: 对象keynamepyimportgtselfdb
1条回答
网友
1楼 · 发布于 2024-05-29 04:55:37

Python区分大小写。您调用bob.lastName(),但是Person方法是.lastname()。错误消息试图告诉您:

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

相关问题 更多 >

    热门问题