Ich bin ziemlich neu im Programmieren und habe mich selbst Python in meiner Freizeit unterrichtet. Ich versuche wirklich OOP zu verstehen und habe eine Wand getroffen. Dies ist ein kleineres Beispiel für ein größeres Programm, das ich schreibe.Python 3 - Suche in OOP
class Emp():
def __init__(self, first, last, age):
self.first = first
self.last = last
self.age = age
def PrintEmp(self):
return (self.first, self.last, self.age)
employee = {}
employee[0] = {'Info': {'First': 'Jacob', 'Last': 'Jones', 'Age': 31}}
employee[1] = {'Info': {'First': 'Joe', 'Last': 'Smith', 'Age': 45}}
employee[2] = {'Info': {'First': 'Jim', 'Last': 'Bob', 'Age': 38}}
employee[3] = {'Info': {'First': 'Jack', 'Last': 'Black', 'Age': 21}}
employee[4] = {'Info': {'First': 'Joey', 'Last': 'John', 'Age': 39}}
employee[5] = {'Info': {'First': 'Job', 'Last': 'God', 'Age': 99}}
for key in employee:
employee[key]['Info']['First'] = Emp(employee[key]['Info']['First'],
employee[key]['Info']['Last'],
employee[key]['Info']['Age'])
choice = input('Employee')
for key in employee:
if choice == employee[key]['Info']['First']:
print(choice.PrintEmp)
#choice.first, choice.last, choice.age ect...
else:
print("This isn't working")
Ich versuche, im Grunde durch eine Liste von bekannten Mitarbeitern zu suchen und dann etwas von dem eigentlichen Objekt druckt oder nur direkt durch die Objekte nach bestimmten Attributen suchen.
Funktioniert etwas nicht wie erwartet würde? Welche Frage möchten Sie beantwortet haben? –
Sie müssen kein Wörterbuch mit 'info' erstellen. Sie brauchen sogar kein Wörterbuch für jede Person. Bessere separate Objekte von 'Emp' erstellen und sie in einer Liste hinzufügen. Führen Sie dann eine Suchabfrage über die Liste aus, indem Sie die Inline-'for' -Schleife verwenden. –
@PratikGaikwad - Es ist mir nie aufgefallen, ein Objekt ohne Label zu "machen" und in eine Liste zu setzen. So konnte ich mein Problem lösen. – pyRN