我正在尝试创建一个可以输入作业名称,类别和付费的程序,我正在尝试将输入的作业名称,类别和付费写入文件来存储数据,但我遇到了问题这样做。
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()
答案 0 :(得分:2)
displayJob()
打印到stdout,而不是打印到您的文件。你必须返回一个字符串:
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)
答案 1 :(得分:0)
假设问题是什么都没有写入文件。 Job.displayJob()
不会返回要写入文件的任何内容,它只会将其显示给stdout。弄清楚你希望对象如何序列化到文件,并有一个返回该字符串的方法。