dictionaries als Funktionsparameter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lou Cyphr3
User
Beiträge: 59
Registriert: Donnerstag 6. Juli 2017, 00:04

Hallo,

ich bin verwirrt bzgl. der Benutzung von dictionaries als Funktionsparameter.

Code: Alles auswählen

class Test:

    def add_column(self):
        sum_1 = np.array([[1, 0],
                          [1, 0],])

        res1 = (sum_1.sum(axis=0))[0]
        res2 = (sum_1.sum(axis=0))[1]

        result = {"Result1": res1 , "Result2" : res2}

        return result

    def example_foo(self, result):
        return_value = result * 2
        return return_value

test = Test()

print(test.example_foo("Result1"))
Ausgabe :

Code: Alles auswählen

Result1Result1
Wieso nimmt es nicht den Wert von res1?
Cours, camarade, le vieux monde est derrière toi!
Benutzeravatar
__blackjack__
User
Beiträge: 13119
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Lou Cyphr3: Weil da nirgends Code steht der das bewirken würde? Welcher sollte das denn sein? Du hast da eine Methode die eigentlich eine Funktion ist, also gar nicht in eine Klasse gehört, die ein Argument erwartet, das mit zwei multipliziert, und das Ergebnis davon an den Aufrufer zurück gibt. Und diese Funktion rufst Du mit einer Zeichenkette als Argument auf und bekommst das erwartbare Ergebnis.

Warum sollte da jetzt eine ganz andere Methode (die auch eigentlich eine Funktion ist) auf magische Weise aufgerufen werden und das Argument das Du `example_foo()` statt mit zwei multipliziert werden, so wie es da ja im Code steht, dann als Schlüssel für den Zugriff in den Rückgabewert der Funktion die nirgends in dem Code aufgerufen wird, verwendet werden? Obwohl so etwas da auch nirgends steht?

Wenn man aus dem Beispiel alles raus wirft was keinen Sinn macht, bleibt das hier übrig:

Code: Alles auswählen

def example_foo(result):
    return result * 2

print(example_foo("Result1"))
Warum stecken die beiden Funktionen in einer Klasse? Wenn man `self` gar nicht verwendet, ist das in der Regel sehr fragwürdig, denn wenn eine Methode das Objekt gar nicht braucht, ist es auch keine Methode.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten