Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 delattr() 및 del()

<시간/>

이 두 함수는 클래스에서 속성을 제거하는 데 사용됩니다. 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'