2017-10-06 9 views
-1

内部関数のパラメータとして、クラスオブジェクトを渡す方法:私はのように「オブジェクト」を渡すために何をすべき私はクラスで定義された関数内で引数としてクラスオブジェクトを使用するクラス

def f(x): 
    return 2*x 
class klass(object): 
    def __init__(self,func): 
     self._func=func 
    def plus(self): 
     v_val = [1, 2, 3, 4] 
     funcs=[func(v) for v in v_val] 
     s=0 
     for i in funcs: 
      s=s+i 
     return s 


test=klass(f) 
print (test.plus()) 

引数 "func"は "plus()"関数の中にありますか? "self._func = func"を試しましたが動作しません。

+0

funcs理解にself.func代わりのfuncを呼び出す 'のfuncsの= [self._funcでそれを試してみてくださいKlass.__init__()
self.func代わりのself._funcを定義する必要があります(V)V用でv_val] ' –

+0

それは動作する、私はそれを得た –

答えて

0

あなたが次にKlass

class Klass(object): 

    def __init__(self, func): 
     self.func = func 

    def plus(self): 
     v_val = [1, 2, 3, 4] 
     funcs = [self.func(v) for v in v_val] 
     s = 0 
     for i in funcs: 
      s = s + i 
     return s 

def f(x): 
    return 2 * x 


test = Klass(f) 
print (test.plus()) 
関連する問題