Computer >> Máy Tính >  >> Lập trình >> Python

delattr () và del () trong Python

Hai hàm này được sử dụng để loại bỏ các thuộc tính khỏi các lớp. Delattr () cho phép xóa thuộc tính động trong khi del () rõ ràng hiệu quả hơn trong việc xóa thuộc tính.

Sử dụng delattr ()

 Cú pháp:delattr (object_name, thuộc tính_name) Trong đó object name là tên của đối tượng, dạng khởi tạo lớp. 

Ví dụ

Trong ví dụ dưới đây, chúng tôi xem xét một lớp có tên là custclass. Nó có id của khách hàng làm thuộc tính của nó. Tiếp theo, chúng tôi khởi tạo lớp dưới dạng một đối tượng có tên là khách hàng và in các thuộc tính của nó.

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

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 012 

Ví dụ

Trong bước tiếp theo, chúng ta lại chạy chương trình bằng cách áp dụng hàm delattr (). Lần này khi chúng tôi muốn in id3, chúng tôi gặp lỗi vì thuộc tính bị xóa khỏi lớp.

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

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 0Traceback (lần gọi gần đây nhất):1File "xxx.py", dòng 13, in (customer.custid3) AttributeError:đối tượng 'custclass' không có thuộc tính 'custid3' 

Sử dụng del ()

 Cú pháp:del (object_name.attribute_name) Trong đó tên đối tượng là tên của đối tượng, dạng khởi tạo lớp. 

Ví dụ

Chúng ta lặp lại ví dụ trên với hàm del (). Xin lưu ý rằng có sự khác biệt về cú pháp từ delattr ()

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

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 01Traceback (lần gọi gần đây nhất):Tệp "xxx.py", dòng 13, inprint (customer.custid3) AttributeError:đối tượng 'custclass' không có thuộc tính 'custid3'