Seite 1 von 1

funktionsaufruf funktionirt in schleife nicht

Verfasst: Freitag 2. Juni 2023, 16:43
von sauterle
Hallo ich bin völlig verzweifelt und bitte dringlichst um hilfe. es ist nur ein beispiel und es ist weder schön geschrieben noch hat sinnvolle Variablen Namen

warum funktioniert dieser codeschipsel so:

Code: Alles auswählen

class g:


    def bereich(self , wert):
        self.bereich = 3
        self.funktions_wert = 8
        if (self.funktions_wert >=50 - self.bereich) and (self.funktions_wert <= 50 + self.bereich):
            self.funktions_wert = 50
        if self.funktions_wert > self.bereich + 50:
            self.funktions_wert -= self.bereich
        if self.funktions_wert <50 -  self.bereich:
            self.funktions_wert += self.bereich
        return self.funktions_wert

print(i.bereich(8))
wenn ich ihn in eine scleife setze aber nicht?

Code: Alles auswählen

class g:


    def bereich(self , wert):
        self.bereich = 3
        self.funktions_wert = 8
        if (self.funktions_wert >=50 - self.bereich) and (self.funktions_wert <= 50 + self.bereich):
            self.funktions_wert = 50
        if self.funktions_wert > self.bereich + 50:
            self.funktions_wert -= self.bereich
        if self.funktions_wert <50 -  self.bereich:
            self.funktions_wert += self.bereich
        return self.funktions_wert


while True:
    print(i.bereich(8))
bitte helft mir!
LG sauterle

Re: funktionsaufruf funktionirt in schleife nicht

Verfasst: Freitag 2. Juni 2023, 17:10
von __deets__
Der funktioniert gar nicht.

Und dieses permanente binden von Werten an self ist wirklich weder noetig, noch gut. Das produziert im Zweifel Fehler. Spar dir das. Wirklich.

Re: funktionsaufruf funktionirt in schleife nicht

Verfasst: Freitag 2. Juni 2023, 17:12
von kbr
Sei i eine Instanz von g(), damit der Code läuft. Dann setzt Du self.bereich = 3 und überschreibst damit die Methode , so dass ein weiterer Aufruf nicht mehr funktioniert.

Re: funktionsaufruf funktionirt in schleife nicht

Verfasst: Freitag 2. Juni 2023, 17:14
von __deets__
@kbr gut gesehn. Und @sauterle da siehst du mal, was dieses unnoetige an-die-Instanz-kleben anstellt, und warum das ne doofe Idee ist.

Re: funktionsaufruf funktionirt in schleife nicht

Verfasst: Freitag 2. Juni 2023, 17:25
von sauterle
das ist vieleicht ein doofer fehler er wird mir eine lektion sein. danke für euer schnelles antworten

Re: funktionsaufruf funktionirt in schleife nicht

Verfasst: Freitag 2. Juni 2023, 17:26
von __blackjack__
Ich sehe auch gar nicht warum das überhaupt eine Methode sein sollte, denn `self` wird nicht verwendet. Zudem wird das `wert`-Argument auch nicht verwendet. Die ”Methode” gibt einfach einen konstanten Wert zurück. Das ist letztendlich nur das hier:

Code: Alles auswählen

while True:
    print(11)