python – AttributeError:’module’对象没有属性’newperson’

weixin_38048154 2019-09-12 11:24:50
我目前正在学习python编程(并且是初学者).目前我被困在文件练习上(所以这些都是我需要做的事情,而不是做我想做的事.不幸的是,这也意味着我可能不能做任何复杂的(对我而言)快捷方式) 目前使用的是Python 3.2.2 我需要两个不同的程序.一种是输入用户键入的内容(名称和DOB)并将其放入列表中的记录中并将其写入二进制文件.另一种是读取该文件并使用填充将其打印到表中. 代码: 第一 import pickle class newperson(): def __init__(self): self.name = "" self.dob = "" stop = False people = [] print("When you want to stop just hit enter") count = 0 while stop == False: name = input("Please Enter the name: ") if len(name) == 0: stop = True else: people.append(newperson()) people[count].name = name people[count].dob = input("Please enter their DOB: ") count = count + 1 file = open("ex9.4.dat", "wb") pickle.dump(people,file) file.close() 第二: import pickle myfile = open("ex9.4.dat", "rb") people = pickle.load(myfile) print("{0:<15}{1}".format("Name","DOB")) for item in people: print("{0:<15}{1}".format(item.name,item.dob)) 问题是我在尝试运行第二个程序时遇到以下错误: AttributeError: 'module' object has no attribute 'newperson' 上 people = pickle.load(myfile) 不幸的是,当我在其他问题上寻找答案时,要么没有一个解决方案有效,要么不适用于我,或者大部分时间只是过了我的头脑. 我究竟做错了什么? 在此先感谢您的帮助.
...全文
31 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38055393 2019-09-12
  • 打赏
  • 举报
回复
当pickle加载文件时,它尝试创建newperson实例,但newpersonis没有在第二个程序中定义.要解决这个问题,您可以创建一个新文件newperson.py,其中只包含类“newperson.py”的定义 # newperson.py class newperson(): def __init__(self): self.name = "" self.dob = "" 在这两个程序中,在导入或pickle之后导入类: from newperson import newperson 或者,您可以使用字典而不是newperson类.

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧