2016-03-27 3 views
1

私は新人です。 classについて質問があります。 は、ここに私のコードです:クラス番号

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() 

しかし、それは「TypeError例外:無効な色の引数」と述べ 私はどのように行うことができますか? int(randcolour)?

+0

を入手するには、プレーンテキストとしてあなたのコードを共有してください。 –

+1

まあ、なぜ画像ですか?イメージを作成して置くために、あなたが持っていたシンプルをコピーしてコピーするよりも、もっとたくさんの作業がありました! –

+0

完全なサンプルコードを提供する必要があります。例えば、あなたが示したコードの中に "TypeError"と言った "それ"はありません。とにかく、あなたの質問のほとんどは、Pythonのチュートリアルを通って答える必要があります。 Pythonのホームページでドキュメントをチェックしてください。 –

答えて

0

あなたのクラスには__init__はありません。つまり、

coulor = randcolour() 

randc関数が呼び出されることはありません。あなたは

def __init__(self): 

def randc(self): 

を交換した場合(あなたの質問は完全に明らかではないが、これはあなたが望むものではないかもしれない)あなたはおそらく、目的の動作を取得します。必ずあなたのフィールドは、セットはこのようになり、あなたの呼び出しを変更することになりつつあるようにする

別の方法:

colour = randcolour().randc() 

大きな持ち帰りはself.rself.g、およびself.bがで設定されていないされないことですあなたが提供したドライバコード。

1

あなたがやっていることは、メソッドを使ってクラスを作成し、そのクラスをインスタンス化することです。このような単純なオブジェクトの場合、関数を使うだけで十分です。私はこれを行うでしょう:

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

3つのランダムな値を持つタプルを返す関数です。

1

あなたRandColourクラスは(慣例により、各単語の最初の文字を大文字に)する必要があります:

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) 

、あなたはRandColourオブジェクトを作成し、ランダムな色を得ることができます:インスタンスの

c = RandColour() 
c.get_colour() 

初期化を変数はinit関数で実行する必要があります。

1

これは実装しようとしているものです。むしろこれより

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 

、私はあなたがオブジェクトを直接初期化されますinitメソッドに

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() 

を使用してみてください好みます。

color.return_colour() 
+0

知りたいことがたくさんあります... – DaCR

+0

とにかく、ありがとう.. – DaCR