2016-03-26 7 views
0

2つの属性を持つクラスを持っていますが、タプルからオブジェクトを生成する関数を持っていますが、Pythonがタプルを引数として渡すことを拒否しています ここコードは次のとおりです。はObjインスタンスで呼び出さなければなりません(代わりにタプルを取得)

class Obj(object): 
    def __init__ (self,x,y): 
    self.x=x 
    self.y=y 
    def divide (t): 
    a=t[0]*2 
    b=t[1]+t[2] 
    return Obj(a,b) 

r=(5,2) 
o=Obj.divide(r) 
print(o) 

、ここでは、明示的にメソッドのシグネチャでself引数を含める必要がPythonで

Traceback .......,line 12 , in <module> o=Obj.divide(r) 
TypeError: unbound method divide() must be called with Obj instance as first argument (got tuple instance instead) 
+0

はインデントそれはまだ引数 –

答えて

1

エラーがあります:

def divide(self ,t): 
    pass # do your stuff 

またはあなたはそれがクラスメソッドになりたい場合:

@classmethod 
def divide(cls ,t): 
    pass # do your stuff 

PS。

+0

を修正してください...あなたはあなたのコード内の他のエラーを持っていますが、あなたは今、自分でそれを把握することができるはずですo'o = Obj(0,0) r =(5,2) o = Obj.divide(o、r)' –

+0

が実際にそれは私が必要なすべての初期化にした 助けたとしてOBJのインスタンスを要求 –

+0

オブジェクトが初期化されていれば、 'o.divide(r)' –

関連する問題