2017-07-08 3 views
-2

Ich lerne Python schon seit einiger Zeit und dachte, es wäre an der Zeit, mehr über Module zu lernen. Insbesondere, wie man sie schreibt. Ich arbeite seit einiger Zeit mit PyGame und bin genervt darüber, jede Farbe, die ich benutze, zu definieren. Ich dachte, das wäre ein guter Anfang, um ein Modul zu schreiben, aber ich habe sofort einen Fehler bekommen. Was ich will, ist so etwas, aber ich weiß nicht, wie man das Tupel von rgb der Farbe im Hauptskript zuweist.Zuweisen einer Variablen mit einem separaten Modul?

Haupt Skript:

import rgb_color as rgb 
red = rgb.red() 

Modul:

red(): 
    (255,0,0) 
+2

Lernen Sie, Funktionen zuerst zu schreiben, und reparieren Sie Ihre Funktionsdefinition. – user2357112

Antwort

0

Wie in den Kommentaren erwähnt, sollten Sie wahrscheinlich etwas mehr Zeit mit den Grundlagen, wie Funktionen verbringen, bevor sie in Module Überschrift.

Trotzdem brauchen Sie hier keine Funktion. Eine "Konstante" wird den Trick gut machen. (Beachten Sie, dass es in Python keine true Konstanten gibt, ändern Sie die Werte jedoch nicht). Schreiben Sie einfach

red = (255, 0, 0) 

in Ihrer Modul-Datei, oder vielleicht sogar besser

RED = (255, 0, 0) # All caps 

besser zu signalisieren, dass es soll ein konstanter Wert sein.

Dann, wenn Sie Ihr Modul importieren, wird die Konstante verfügbar. Vielleicht wäre es eine gute Idee, auch zu schauen, was __all__ tut, wenn Sie jemals darüber nachdenken, from rgb_color import * zu tun, obwohl dies sehr davon abgeraten wird.

+0

Danke, das hat perfekt funktioniert. Und ich werde Ihren Rat befolgen und mehr über Modulgrundlagen erfahren, aber Praxis ist der beste Weg zu lernen. Danke, dass du deine Zeit verbracht hast, um zu helfen! :) Außerdem weiß ich, dass ich einfach rot = (255, 0, 0) eingeben kann, aber ich kann auch mein Modul lila einsetzen, was sich schwerer von oben zu merken ist. – sonicsword

+0

@sonicsword, aber Sie können Dinge nicht üben, die Sie nicht kennen. Die Syntax zu erraten und dann zu fragen, warum es unweigerlich nicht funktioniert, ist kein effektiver Weg, eine Programmiersprache zu lernen (oder einen SO-Account zu unterhalten, der mehr Fragen stellen darf). Lerne zuerst die Grundlagen: https://sopython.com/wiki/What_tutorial_should_I_read%3F. Warum ist Purpur schwerer zu erinnern als Rot? Warum musst du dich nicht daran erinnern, was die Farben sind? – jonrsharpe

+0

@johanl 'aus rgb_color import *' – snakecharmerb

Verwandte Themen