2016-10-09 8 views
0

私はPythonクラスと関連する関数を書いていました。以下は、数値のリストのすべての値を加算し、上記のクエリがうまくリストの合計を返しますPythonで暗黙に引数を渡すクラス関数

alist = [2,3,7,4,7] 
MyClasss(object): 
    def __init__(self): 
     print("Roses are red") 
    def add_list(self,thelist): 
     j = 0 
     for i in the list: 
      j = j+i 
    return j 

    a = MyClasss() 
    print("sum is ",a.add_list(alist)) 

合計を返す関数を持つクラスであると仮定します。

、私の質問は: はそれが可能なこのクエリを記述するか、我々は括弧内のデータオブジェクトを渡す必要はありませんしたデータオブジェクトを作成する代わりにそれを書き何かをこの

alist.add_list() 

のようにして取得することです同じ結果。さまざまなデータ型で異なる機能が利用できることがわかります。 これに関する洞察は高く評価されます。おかげ

+0

が、なぜありません'sum(alist)'をしますか? –

+0

@ cricket_007ああこれは説明のための単なる例です。私は、コードの第2セクションで述べた構文を使用することができることを知りたかった。 – Uasthana

+0

@ cricket_007:単なる考え。あなたはオンラインで24 * 7の滞在ですか? :P – FallAndLearn

答えて

3

あなたは建設

class MyClasss(object): 
    def __init__(self, theList): 
     self.theList = theList 
    def add_list(self): 
     return sum(self.theList) 

>>> a = MyClasss([2,3,7,4,7]) 
>>> print("sum is ", a.add_list()) 
23 
>>> print("sum is ", a.add_list()) 
23 

__init__に追加することができ、これを行うための別の方法はfunctools.partialから部分関数を作成して、それを呼び出している:あなたが欲しいものを不明確

>>> import functools as ft 
>>> a = MyClasss() 
>>> a.add_list = ft.partial(a.add_list, [2,3,7,4,7]) 
>>> a.add_list() 
23 
+0

それは確かにそれを行う一つの方法です。それを共有してくれてありがとう。 – Uasthana

関連する問題