1

リストなどの型の場合、空のリストを簡単に作成して、この構造を機能させることができます。

 s = []
 s+= [1,2,3]  # result s assigned [1,2,3]

次のような構成では明らかに便利です。

 s=[]
 for v in (list1,list2,list3..):
   if condition : s+=v

今、私は読んだり変更したりできないモジュールで定義されたユーザー定義型を使用しています..これを行う必要があります:

 s=0
 for v in (typefoo1,typefoo2,..):
   if condition :
    if s==0 :
     s=v
    else:
     s+=v

これは機能しますが、醜く、頻繁に発生するため、かなり面倒です。そう.. rhsのタイプに関係なく、+=オペレーターが通常の割り当てのように単純に動作するように空のオブジェクトを作成する方法はありますか?=

編集:質問を意図的に一般的なものにしようとしましたが、完全を期すために、問題のタイプはAbaqusジオメトリシーケンスです。

4

2 に答える 2

2

rhs のタイプに関係なく、+=オペレーターが通常の割り当てのように単純に動作するように、空のオブジェクトを作成する方法はありますか?=

もちろん。クラスを作成し__add__、RHS を変更せずに返すメソッドを定義するだけです。

class DummyItem:
    def __add__(self, other):
        return other

s = DummyItem()
s += 23
print s

結果:

23
于 2015-06-11T14:21:36.223 に答える