del文
del関数と同様に、オブジェクトを削除する文である。変数、関数、クラスやインスタンスなどを削除できる。
code:python
x = 1
del x
def myfunc():
print('# in myfunc')
del myfunc
以下のように、インスタンス変数を指定して削除することも可能
code:python
class Myclass:
def __init__(self):
self.data = 1
print('# in __init__ of Myclass')
x = Myclass()
del x.data # インスタンス変数を削除
del x # インスタンスを削除
del Myclass.mymeth # メソッドを削除
del Myclass # クラスを削除
インスタンスメソッドは削除できないようだ、面白い。
もし削除できてしまうと、異なる構造をもつ同じクラスが誕生してしまうことになるので、当然である。
code:python
class Myclass:
def __init__(self):
self.data = 1
print('# in __init__ of Myclass')
def mymeth(self):
print('# mymeth of Myclass')
x = Myclass()
y = Myclass()
# del x.mymeth # できない
y.mymeth()
リストの要素を削除。
code:python
x = 1, 2, 3
del x1
print(x)
# 1, 3
ndarrayやタプルなどは要素を指定して削除することができない。