オーバーロードすることは可能ですか?[] (__getitem__)
初期メモリ参照を使用してPythonの演算子メソッドと連鎖メソッドを使用します。Overload []メモリ参照を使用するPython演算子と連鎖メソッド
class Math(object):
def __init__(self, *args, **kwargs):
assert(all([isinstance(item, int) for item in list(args)]))
self.list = list(args)
def add_one(self):
for index in range(len(self.list)):
self.list[index] += 1
そして、私はこのような何かをしたい:
私はこのように、整数のリストを受け入れクラスMath
を持っている想像し
instance = Math(1,2,3,4,5)
instance[2:4].add_one()
このコードinstance.list
を実行した後にすべき[1,2,4,5,5]
であれば可能ですか?
私はadd_one(2,4)
のようなことをすることができると知っていますが、これは可能な場合はAPIのスタイルではありません。
ありがとうございました
'xrange(* self.slice.indices(len(self.math.list)))'はひどくうんざりしています。より良い方法がありますか? – Eric
また、 'self.fields'と' self.list'を混在させています – Eric
@Eric:不要なMath.add_oneを削除しました。そしてxrange(* ...)は非常に扱いにくいようですが、わかりませんより短い方法。 –