이 두 함수는 클래스에서 속성을 제거하는 데 사용됩니다. delattr()은 속성의 dynamoc 삭제를 허용하는 반면 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'