是否可以从循环访问外部类方法到字典? 这里有两个例子,一个通过循环访问列表,另一个通过字典访问。第一个完成我想要的字典(第二个):
ins.py
class Ins:
def __init__(self, cognome, nome, indirizzo, entrate, spese):
self.__cognome = cognome
self.__nome = nome
self.__indirizzo = indirizzo
self.__entrate = entrate
self.__spese = spese
def get_cognome(self):
return self.__cognome
def get_nome(self):
return self.__nome
def get_indirizzo(self):
return self.__indirizzo
def get_totale(self):
return str(float(self.__entrate) - float(self.__spese))
def __str__(self):
return "Cognome: " + self.__cognome + "\nNome: " + self.__nome + \
"\nIndirizzo: " + self.__indirizzo +\
"\nEntrate: " + self.__entrate + "\nSpese: " + self.__spese
ins_main_list.py
import ins
dict = []
def main():
again = 'y'
while again.lower() == 'y':
cognome = input('Inserire Cognome: ')
nome = input('Inserire Nome: ')
indirizzo = input('Inserire Indirizzo: ')
entrate = input('Inserire Entrate: ')
spese = input('Inserire Spese: ')
again = input("Continuare con l'inserimento? (Y/N) ")
print()
entry = ins.Ins(cognome, nome, indirizzo, entrate, spese)
dict.append(entry)
for item in dict:
print(item)
print(item.get_totale())
print()
main()
ins_main_dict.py
import ins
dict = {}
def main():
again = 'y'
while again.lower() == 'y':
cognome = input('Inserire Cognome: ')
nome = input('Inserire Nome: ')
indirizzo = input('Inserire Indirizzo: ')
entrate = input('Inserire Entrate: ')
spese = input('Inserire Spese: ')
again = input("Continuare con l'inserimento? (Y/N) ")
print()
entry = ins.Ins(cognome, nome, indirizzo, entrate, spese)
dict[cognome] = entry
for item in dict:
print(dict[item])
print(item.get_totale())
print()
main()
正如您在上一个示例中看到的,item.get_totale()给出了属性错误。怎么可能进入它?
答案 0 :(得分:4)
我相信你应该dict[item].get_totale()
,而不是item.get_totale()
。 item
正在迭代dict
(字符串)的键,而不是您的自定义类