Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのdelattr()とdel()


これらの2つの関数は、クラスから属性を削除するために使用されます。 delattr()を使用すると、属性を動的に削除できますが、del()を使用すると、属性をより効率的に明示的に削除できます。

delattr()の使用

Syntax: delattr(object_name, attribute_name)
Where object name is the name of the object, instantiated form the class.
Attribute_name is the name of the attribute to be deleted.

以下の例では、custclassという名前のクラスを検討します。属性として顧客のIDがあります。次に、customerという名前のオブジェクトとしてクラスをインスタンス化し、その属性を出力します。

class custclass:
   custid1 = 0
   custid2 = 1
   custid3 = 2
customer=custclass()
print(customer.custid1)
print(customer.custid2)
print(customer.custid3)

出力

上記のコードを実行すると、次の結果が得られます-

0
1
2

次のステップでは、delattr()関数を適用してプログラムを再度実行します。今回、id3を出力する場合、属性がクラスから削除されるため、エラーが発生します。

class custclass:
   custid1 = 0
   custid2 = 1
   custid3 = 2
customer=custclass()
print(customer.custid1)
print(customer.custid2)
delattr(custclass,'custid3')
print(customer.custid3)

出力

上記のコードを実行すると、次の結果が得られます-

0
Traceback (most recent call last):
1
File "xxx.py", line 13, in print(customer.custid3)
AttributeError: 'custclass' object has no attribute 'custid3'

del()の使用

Syntax: del(object_name.attribute_name)
Where object name is the name of the object, instantiated form the class.
Attribute_name is the name of the attribute to be deleted.

上記の例をdel()関数で繰り返します。 delattr()と構文が異なることに注意してください

class custclass:
   custid1 = 0
   custid2 = 1
   custid3 = 2
customer=custclass()
print(customer.custid1)
print(customer.custid2)
del(custclass.custid3)
print(customer.custid3)

出力

上記のコードを実行すると、次の結果が得られます-

0
1
Traceback (most recent call last):
File "xxx.py", line 13, in
print(customer.custid3)
AttributeError: 'custclass' object has no attribute 'custid3'

  1. ==とPythonの演算子の違い。

    isとequals(==)演算子はほとんど同じですが、同じではありません。 is演算子は、両方の変数が同じオブジェクトを指すかどうかを定義しますが、==記号は、2つの変数の値が同じかどうかをチェックします。 サンプルコード # Python program to # illustrate the # difference between # == and is operator # [] is an empty list list1 = [] list2 = [] list3=list1 if (list1 == list2): print(True) e

  2. Python例外メッセージをキャプチャして出力する方法は?

    Python例外メッセージは、以下の2つのコード例に示すように、さまざまな方法でキャプチャおよび印刷できます。最初の例では、例外オブジェクトのメッセージ属性を使用します。 例 try: a = 7/0 print float(a) except BaseException as e: print e.message 出力 integer division or modulo by zero 指定されたコードの場合、sysモジュールをインポートし、sys.exc_value属性を使用して例外メッセージをキャプチャして出力します。 例 import sys def catchEverything(