我不得不製作一個動物課,讓用戶可以根據這些信息輸入信息並打印出一些文字。如何從文本文件輸入信息進行打印?
class Animal:
def __init__(self,species='default',language='default',age=0):
self.species=species
self.language=language
self.age=age
def setSpecies(self, species):
#set animal species
self.species=species
def setLanguage(self, language):
#set animal language
self.language=language
def setAge(self, age):
#set animal age
self.age=age
def speak(self):
#prints a sentance by the animal
print('I am a {} year old {} and I {}.'.format(self.age, self.species, self.language))
def __repr__(self):
#return string representation
return "Animal,'{}','{}',{}".format(self.species,self.language,self.age)
def __eq__(self, new):
#compares animals
return self.species==new.species and self.language==new.language and self.age==new.age
現在我必須寫一個函數processAnimals(),它有一個參數,輸入文件名。如果文件不包含任何行,該函數將返回創建的動物列表或空列表。 processAnimals()函數應讀取文件中的所有行,爲每行創建一個Animal對象並將該對象放入列表中。
def processAnimals(fname):
with open(fname,'r') as f:
for line in f:
line = fname.strip().split(',')
print('I am a {} year old {} and i {}.').format(self.species,self.language,self.age)
我得到這個錯誤:AttributeError: 'NoneType' object has no attribute 'format'
當我刪除.format(self.species,self.language,self.age)
它打印
I am a {} year old {} and i {}.
I am a {} year old {} and i {}.
I am a {} year old {} and i {}.
這是我需要的,但{}
應該從文件
文本文件中有信息:
cat,meow,8
dog,bark,22
bat,use sonar,2
我認爲我的問題可能是文件的閱讀,但我不確定。
首先必須創建類動物的情況下,那麼只有你可以使用該對象的方法。 – ZdaR