是否可以从循环访问外部类方法到字典中? 这里有 2 个示例,一个通过循环访问列表,另一个通过字典访问。第一个完成我想用字典完成的工作(第二个):
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() 给我一个属性错误。怎么可能进入它?
最佳答案
我认为您应该使用 dict[item].get_totale()
,而不是 item.get_totale()
。 item
遍历 dict
的键(字符串),而不是您的自定义类
关于python - 从字典中的对象访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47063270/