Hàm setattr() trong Python

Trong Python, hàm setattr() có nhiệm vụ thiết lập giá trị cho một thuộc tính của đối tượng.

Cú pháp của hàm setattr() trong Python

setattr(đối tượng, tên, giá trị)

Nếu bạn muốn lấy thuộc tính của một đối tượng, hãy dùng hàm getattr().

Các tham số của hàm setattr()

Hàm setattr() có 3 tham số:

  • Đối tượng: Đối tượng có thuộc tính cần thiết lập
  • Tên thuộc tính
  • Giá trị cần thiết lập cho thuộc tính

Giá trị trả về từ hàm setattr()

Hàm settattr() không trả về bất cứ giá trị nào.

setattr() khá hữu ích khi bạn cần bổ sung, sửa thông tin cho các đối tượng

Ví dụ 1: Hàm setattr() hoạt động như thế nào trong Python?

Mời các bạn xem đoạn code sau:

class QTM:
    name = 'Quantrimang'
    
p = QTM()
print('Trước khi sửa:', p.name)

#Thay tên thành 'Quantrimang.com'
setattr(p, 'name', 'Quantrimang.com')

print('Sau khi sửa:', p.name)

Khi chạy chương trình, kết quả thu được là:

Trước khi sửa: Quantrimang
Sau khi sửa: Quantrimang.com

Ví dụ 2: Hàm setattr() làm gì khi không tìm thấy thuộc tính

Nếu không tìm thấy thuộc tính, hàm setattr() sẽ tạo một thuộc tính mới và gán giá trị cho nó. Tuy nhiên, điều này chỉ xảy ra nếu đối tượng thực thi lệnh __dict__().

Bạn có thể kiểm tra tất cả thuộc tính của đối tượng bằng cách sử dụng hàm dir().

class QTM:
    name = 'Quantrimang'
    
p = QTM()

#Thay tên thành 'Quantrimang.com'
setattr(p, 'name', 'Quantrimang.com')
print('Tên:', p.name)

#Thiết lập một thuộc tính không có trong QTM
setattr(p, 'nhanvien', 6969)
print('Số nhân viên:', p.nhanvien)

Kết quả

Tên: Quantrimang.com
Số nhân viên: 6969