2017-08-15 1 views
-3

Ich bin ein Autodidakt Programmierer machen mein erstes kleines Spiel in Python und möchte wissen, wie man am besten "globale" Variablen und Klassen. Also benutze ich pygame und meine grundlegende Programmiererstruktur ist ich habe den __ name __ == "__ main __" dingy und dann instanziiert es meine ProgramConstants (mehr dazu später) Klasse als Kern und ruft main() auf. im main ruft es eine programm initialisierungsfunktion auf und geht in die spielschleife, die aus einem delta time update fps ticker einige grundlegende handhabung besteht und die displayfunktionen und meine tastaturmanagerfunktion aufruft. Jetzt über meine ProgramConstants-Klasse ... es ist eine Klasse an der Spitze des Programms definiert, die eine große Init-Funktion hat, wo alle meine globalen Variablen und Klassen instanziiert und initialisiert werden, warum ich dies getan habe, so dass ich in jeder Funktion nur ein hätte ordentlicher und kurzer "globaler Kern" am Anfang statt Global und dann 1000 verschiedene Variablen. (Kern ist übrigens nur der Name der Instanz von Pro.Consta.) Nun habe ich mich umgesehen und herausgefunden, dass es anscheinend nicht gut und unordentlich ist, "global" im Allgemeinen mit Ausnahme von Konstanten zu verwenden. (ironisch die meisten Dinge in der Pr.Const. Klasse arent Konstanten) also dachte ich, wie habe ich viele Variablen? deklariere ich sie in meiner init-funktion und analysiere sie dann durch alle meine funktionen und mache sie weniger wiederverwendbar oder packe ich einfach alles in main? Was ist ein ordentlicher Weg? Ich fragte meinen älteren Bruder, der ein JS-Programmierer ist und er sagte, er hat eine Konfigurationsdatei, aber das wäre in Python langsamer und schlimmer nein? weil Lesen und Schreiben oder Lesen und einfach alles irgendwo speichern würde immer noch eine Art von globalen Variable benötigen, also bitte, wenn jemand mir sagen könnte, der beste Weg, um alle Variablen in größeren Code zu organisieren. Vielen Dank schon im VorausPython Best Practice für globale Variablen

PS: Spiel ist nicht fertig noch, wenn Sie sich fragen, was einige Klassen tun ...

EDIT: In Reaktion auf die Kommentare hier ist ein Link zu einer rep git Nabe i des Projekts : https://github.com/DrClottom/Egg-On-Your-Face.git (nie hoffen, ein git hub-Projekt geteilt, bevor es funktioniert)

eine Tutorial-Serie für die Entwicklung von Spielen in python gefunden, die ein Video sowieso hier dank der Link zum vid hat, die gut Organisation demonstriert: https://youtu.be/uWvb3QzA48c

+2

Codebeispiel im Wert von tausend Worten – PRMoureu

+0

@PRMoureu Entschuldigung, meinst du, ich sollte einen Code verknüpfen? – MrClottom

+0

Ja, es wird einfacher sein zu beschreiben, was dein Code tatsächlich macht – PRMoureu

Antwort

-2

Siehe: https://www.python.org/dev/peps/pep-0008/ für empfohlene Python-Code-Formatierung. Am besten nutzen Sie die Objektorientierung über möglichst globale Variablen und Objekte.

+0

PEP8 hat nichts damit zu tun. Das ist ein * Style Guide *. –