Discord Bot mit ZaehlerKlasse

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.
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich denke, Deine Weigerung, Python zu lernen, hat schon etwas damit zu tun, ob Du Probleme selbständig lösen kannst oder nicht.
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Was heisst jetzt hier "lernen", das Programm funktioniert ja, es gibt keinen Error also kann es scheiss egal sein, klar ist es nicht schön, und wenn ich in Zukunft mal diesen Fehler mache werde ich mich an diesen Thread erinnern.


Könnte jetzt BITTE mir jemand diese simpleeste Frage aller Fragen beantworten? oder mir wenigstens einen (am besten deutschen) Link schicken wo ich genau DIESE Frage nachlesen kann, die ich jetzt hier seit 5 Tagen stelle?






PS: und wenn hier jeder Python komplett gelernt hätte würde es dieses Forum ja gar nicht geben ;) Also zumindest in der jetzigen Form nicht ^^
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Phobit: Das Forum würde es auch nicht geben wenn jeder so unwillig gewesen wäre Python zu lernen wie Du, weil dann keiner jemand anderem hätte helfen können. ;-)

Deine Frage wurde beantwortet. Du musst jetzt nur noch Python so weit lernen bis Du die Antwort anwenden kannst. Einen Link auf genau DIESE *Frage* ist übrigens dieses Thema hier, wo Du ja genau diese Frage gestellt hast. :-P Falls Du einen Link auf eine Lösung die Du ohne sie zu verstehen einfach blind kopieren kannst, erwartest: Mal sehen ob das jemand für Dich macht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Falls Du einen Link auf eine Lösung die Du ohne sie zu verstehen einfach blind kopieren kannst, erwartest: Mal sehen ob das jemand für Dich macht.
Naja, bisher lief das in diesem Forum irgendwie so ;) gut, dann werd ich mal nochmal schaun aber ich wette ich finde in diesem Thread auch nichts was mir wirlich weiterhilft...
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Kann mir wenigstens jemand schnell ein Stichwort geben, was da hin muss, oder es am besten EINFACH SCHNELL SCHREIBEN, ich meine ihr habt mir oben diesen Ansatz gegeben, und jetzt brauch ich Hilfe weil ihn nicht verstehe, wie mache ich diesen Callback?

Code: Alles auswählen

async def ex(args, message, client, invoke, names):
    await client.change_presence(game=Game(name=next(names)))

preferences = ["Pre1", "Pre2", "Pre3"]
ex(partial(ex, names=itertools.cycle(preferences)))
Hier schreibt er hin im fehlen bei der ex(partial) Zeile die Argumente message, client, invoke, logisch, aber wenn ich jetzt diese Hinschreibe:

Code: Alles auswählen

ex(partial(ex, names=itertools.cycle(preferences, message, client, invoke)))
Sagt er message (und auch die anderen) sind nicht defined, und langsam weiß ich echt nicht emhr weiter, weder was ich tun soll noch was ich googlen soll noch sonst irgendwas...
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Phobit hat geschrieben: Samstag 22. September 2018, 15:03 ich meine ihr habt mir oben diesen Ansatz gegeben
Da dachte hier auch noch jeder, Du würdest mit irgendeiner Art Callbacks arbeiten und nicht mit Modulen.

Ab einer gewissen Komplexität muß man einfach die Grundlagen kennen, bevor man selbständig eine Lösung finden kann.
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Ja und was für Grundlagen wären das?


ich verstehe das ganze Problem nicht, ich bin jetzt locker 3 Monaten auf diesem Forum, bis jetzt lief es immer so dass man sein Problem geschilder tund seinen Code gepostet hat, danach wurde einem soweit Möglich eine Lösung gezeigt oder wenigsten gut bis zur Lösung verholfen, jetzt schildere ich mein Problem und poste meinen Code und eure Lösung ist es diesen Thread unendlich in die Länge zu ziehen indem ihr mir nur sagen wollt dass es an den Grundlagen hapert?!


WELCHE Grundlagen genau?!?!
An if clauses wirds ja z.B. wohl eher nicht liegen, oder? :---------)
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Dann hast Du die letzten drei Monate etwas falsch verstanden. Du solltest nicht nur abschreiben, sondern verstehen, was die Lösung ist. Die Grundlagen sind also alles das, was Du bisher nicht verstanden hast.
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Ich verstehe aktuell diese eine Sache nicht, deswegen habe ich mich an das Forum gewendet. Aber scheinbar verstehts dort ja auch keiner, zumindest sehe ich immer noch niemanden der fähig dazu ist zu helfen...?
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Phobit: Niedlicher Trollversuch. Der Einzige in diesem Thema der nicht fähig ist das zu lösen bist Du. Das kannst letztlich auch nur Du ändern, in dem Du lernst wie man selbst programmiert, und nicht nur fertige Lösungen abschreibt, ohne sie zu verstehen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Und wie bereits oben erwähnt, habe ich scheinbar bisher alles dank eurer Hilfe verstanden, nur so ein Problem kam mir noch nie unter, deswegen schreibe ich ja hier im Forum.


Und anstatt dass ihr hier auf meine angeblichen "Niedlichen Trollversuch" eingeht, könntet ihr mir auch einfach helfen.
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Phobit: Also ich kann Dir nicht helfen. Keine Ahnung wie man Dich motivieren kann zu lernen. :-)
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Das ist doch jetzt wenigstens mal ne Antwort...
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

So,
habe jetzt endlich ne funktionierende Lösung. (Falls noch wer den Thread liest, lol)

Code: Alles auswählen

with open("test.txt", "r+") as f:
            s = f.readlines()
            f.seek(0)
            await client.change_presence(game=Game(name=s[0]))
            Speicher = s[0]
            del s[0]
            f.writelines(s)
            f.writelines(PresenceSave)
Vllt nicht -wie immer- der Schönste Code, aber er läuft unter jeder Bedingung einwandfrei.

(Zum Verständnis: Die verschiedenen Presences sind in einer TXT gespeichert, und bei jedem Befehlsaufruf wird die erste Zeile, also der erste Presence als Presence gewählt, gelöscht und am Ende wieder angehängt. So zykelt es schön und sauber durch :-))
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Da fällt mir Clementine ein: "sauber ist nicht rein" ...
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie schon oben geschrieben, bei Deinem Code kommt es auch nicht mehr darauf an, ob Du nun mit einer globalen Liste oder einer globalen Text-Datei arbeitest. `Speicher` wird gar nicht benutzt, `PresenceSave` nicht definiert.
Das macht das selbe:

Code: Alles auswählen

name = globale_liste.pop(0)
await client.change_presence(game=Game(name=name))
globale_liste.append(name)
Oder eben, wie schon vor einigen Wochen vorgeschlagen

Code: Alles auswählen

PRESENCES = ["Lotro", "Lotro2", "Lotro3"]

async def ex(args, message, client, invoke, names=itertools.cycle(PRESENCES)):
    await client.change_presence(game=Game(name=next(names)))
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Ja, und damals hatte ich zu dem
PRESENCES = ["Lotro", "Lotro2", "Lotro3"]

async def ex(args, message, client, invoke, names=itertools.cycle(PRESENCES)):
await client.change_presence(game=Game(name=next(names)))
eine Frage, und damals wurde sich strikt geweigert mir zu helfen und später hieß es dass es gar nicht möglich sei, da alle vom Falschen ausgingen...





Ps: Ups, das mit dem PresenceSave ist mir nicht mehr aufgefallen *faceplam* muss natürlich Speicher heissen...
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Dir wurde nicht geweigert zu helfen, Du hast nur die Dir angebotene Hilfe nicht angenommen. Dass etwas nicht möglich wäre, wurde nie gesagt, und dass alle vom Falschen ausgingen, lag nur daran, dass Du nichts verraten hast und „ungewöhliche” Konstrukte benutzt.
Phobit
User
Beiträge: 185
Registriert: Freitag 4. Mai 2018, 18:13

Sirius3 hat geschrieben: Samstag 22. September 2018, 15:42
Phobit hat geschrieben: Samstag 22. September 2018, 15:03 ich meine ihr habt mir oben diesen Ansatz gegeben
Da dachte hier auch noch jeder, Du würdest mit irgendeiner Art Callbacks arbeiten und nicht mit Modulen.

Ab einer gewissen Komplexität muß man einfach die Grundlagen kennen, bevor man selbständig eine Lösung finden kann.
Also du persönlich hast geschrieben, dass der Ansatz da oben scheinbar nicht mehr funktioniert, da ich mit Modulen und nicht mit Callbacks arbeite...


Das alle vom falschen ausgingen war meine Schuld, streit ich nicht ab ^^
Mir egal, ob der Code schön ist oder nicht.
Hauptsache er funkt!
Antworten