2016-03-27 6 views
1

Ich bin ein Anfänger. Ich habe eine Frage zu class. Hier ist mein Code:Class To Nummer

class randcolour: 
    def randc(self): 
     self.r = random.randint(0, 255) 
     self.g = random.randint(0, 255) 
     self.b = random.randint(0, 255) 
     return (self.r, self.g, self.b) 

colour = randcolour() 
colour2 = randcolour() 
colour3 = randcolour() 
colour4 = randcolour() 

Aber es sagt: "Typeerror: invalid Farbe Argument" Wie kann ich tun? int (Randfarbe)?

+0

Bitte teilen Sie den Code im Klartext zu erhalten. –

+1

Gott, warum ein Bild? Sie hatten mehr Arbeit zu erstellen und ein Bild hier als nur kopieren + hinter dem Simpel geschnipst Sie haben! –

+0

Sie müssen den vollständigen Beispielcode angeben.Es gibt zum Beispiel kein "it", das "TypeError" in irgendeinem der angezeigten Codes hätte sagen können. Wie auch immer, die meisten Ihrer Fragen sollten beantwortet werden, indem Sie ein Python-Tutorial durchlaufen. Auf der Python-Homepage finden Sie eine Dokumentation. –

Antwort

0

Sie haben keine __init__ für Ihre Klasse. Das bedeutet, wenn Sie sagen,

coulor = randcolour() 

Ihre randc Funktion nie aufgerufen wird. Wenn Sie

ersetzen
def randc(self): 

mit

def __init__(self): 

werden Sie wahrscheinlich das gewünschte Verhalten bekommen (auch wenn Ihre Frage nicht ganz klar ist, so kann dies nicht sein, was Sie wollen).

Eine andere Möglichkeit, um sicherzustellen, dass Ihre Felder Set bekommen würde, um Ihre Anrufe zu ändern, so sein:

colour = randcolour().randc() 

Der große Mitnehmen ist, dass self.r, self.g und self.b werden nie in gesetzt Der von Ihnen angegebene Treibercode.

1

Was Sie tun, ist eine Klasse mit einer Methode erstellen und dann die Klasse instanziieren. Für solch ein einfaches Objekt sollte es ausreichen, nur eine Funktion zu verwenden. Ich würde dies tun:

def randcolour(): 
    return (random.randint(), random.randint(), random.randint()) 

das ist eine Funktion, die ein Tupel mit 3 zufälligen Werten zurückgibt.

c = RandColour() 
c.get_colour() 

Initialisierung der Instanz

:

1

Ihre RandColour Klasse (erste Zeichen jedes Wortes durch Konvention Kapital) sollte sein:

import random 
class RandColour: 
    def __init__(self): 
     self.r = random.randint(0,255) 
     self.g = random.randint(0,255) 
     self.b = random.randint(0,255) 

    def get_colour(self): 
     return (self.r, self.g, self.b) 

dann können Sie ein RandColour Objekt und bekommen die gelegentliche Farbe erstellen Variable sollte in der init Funktion durchgeführt werden.

1

Dies versuchen Sie zu implementieren.

import random 

class RandColor(object): 

def randc(self): 
    self.r = random.randint(0,255) 
    self.g = random.randint(0,255) 
    self.b = random.randint(0,255) 
    return (self.r,self.g,self.b) 

color = RandColor() 
color.randc() 

print color.r 

Anstatt dies, ziehe ich Sie init-Methode

import random 

class RandColour: 
def __init__(self): 
    self.r = random.randint(0,255) 
    self.g = random.randint(0,255) 
    self.b = random.randint(0,255) 

def return_colour(self): 
    return (self.r, self.g, self.b) 

color = RandColour() 

Das Objekt initialisiert wird direkt Versuchen Sie es mit.

Um die Werte

color.return_colour() 
+0

Es gibt viele Dinge, die ich wissen muss ... – DaCR

+0

Wie auch immer, danke .. – DaCR