我正在尝试制作一个程序,您可以输入工作名称,类别和薪水,并且试图将输入的工作名称,类别和薪水写到文件中以存储数据,但是这样做有问题。class Job(object): def __init__(self, jobName = '', jobCategory = '', jobPay = ''): self.jobName = jobName self.jobCategory = jobCategory self.jobPay = jobPay def getName(self): self.jobName = input("What is the Job Title: ") def getCategory(self): self.jobCategory = input("What is the Job Category: ") def getPay(self): self.jobPay = input("What is the Job Pay: ") def displayJob(self): print("Job: " + self.jobName) print("Job Category: " + self.jobCategory) print("Job Pay: " + self.jobPay) print()def Main(): global NewJob NewJob = Job() NewJob.getName() NewJob.getCategory() NewJob.getPay() print() NewJob.displayJob() myFile = open('newFile.txt', 'w') myFile.write(NewJob.displayJob()) myFile.close()Main()
2 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
displayJob()打印到标准输出,而不是文件。您必须返回一个字符串:
def displayJob(self):
results = [
"Job: " + self.jobName,
"Job Category: " + self.jobCategory,
"Job Pay: " + self.jobPay
]
return "\n".join(results)
或将它file作为参数传递,但这看起来有些奇怪:
import sys
def displayJob(self, file=sys.stdout):
print("Job: " + self.jobName, file=file)
print("Job Category: " + self.jobCategory, file=file)
print("Job Pay: " + self.jobPay, file=file)
print(file=file)
...
NewJob.displayJob(myFile)
守着星空守着你
TA贡献1799条经验 获得超8个赞
假定问题出在什么都没有写入文件中。 Job.displayJob()
不返回任何要写入文件的内容,仅将其显示到stdout。弄清楚您希望对象如何序列化到文件,并具有返回该字符串的方法。
添加回答
举报
0/150
提交
取消