4

なぜこれを行うのですか:

del a[:]

リスト内のすべてのエントリを削除しますaか?

私が理解している限りa[:]、 のコピーを返しますadel a[:]のコピーを削除しないでくださいa

4

1 に答える 1

4

del元の値をチェックし、指定されたスライスを使用してそれを削除する特別なステートメントです。
オブジェクトを呼び出し__delitem__、オブジェクト自体が削除を処理します。

内部で行われている操作に興味がある場合は、次のクラスを実装し、delさまざまなスライスまたはキー参照でステートメントを使用してください。

class A:
    def __delitem__(self, key):
        print(key)

インタプリタでのテスト:

>>> a = A()
>>> del a[:]
slice(None, None, None)
>>> del a[2]
2
>>> del a["test"]
test
于 2016-03-24T17:36:28.857 に答える