Làm cách nào để đặt thuộc tính trong python?

Trong hướng dẫn này, bạn sẽ tìm hiểu về hàm setattr[] trong Python, bao gồm chức năng của nó, khi nào nên sử dụng và khi nào sử dụng nó là thừa. Hàm được sử dụng để đặt một thuộc tính thành một giá trị của một đối tượng, cho dù thuộc tính đó có tồn tại hay không

Đến cuối hướng dẫn này, bạn sẽ học được

  • Hàm Python
    # Setting the attribute of an object
    class Employee:
        def __init__[self, name, salary]:
            self.name = name
            self.salary = salary
    
    Nik = Employee["Nik", 75000]
    
    print['Before changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    setattr[Nik, "salary", 80000]
    
    print['After changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    # Returns:
    # Before changing attribute...
    # Nik.salary: 75000
    # After changing attribute...
    # Nik.salary: 80000
    0 làm gì và cách sử dụng nó
  • Khi chức năng bị lỗi và cách ngăn chặn lỗi này
  • Tại sao chức năng có thể dư thừa để đặt thuộc tính
  • Cách chức năng có thể được sử dụng để thêm tập hợp nhiều thuộc tính đối tượng cùng một lúc

Mục lục

  • Hiểu hàm setattr trong Python
  • Tại sao Python setattr có thể dư thừa
  • Cách đặt nhiều thuộc tính đối tượng trong Python với setattr
  • Khi setattr thất bại và cách khắc phục lỗi
  • Sự kết luận
  • Tài nguyên bổ sung

Hiểu hàm setattr trong Python

Hàm setattr trong Python được sử dụng để đặt giá trị cho một thuộc tính của một đối tượng. Chức năng này có thể được sử dụng để

  1. Đặt thuộc tính của một thuộc tính hiện có, hoặc
  2. Tạo một thuộc tính mới và đặt nó thành một giá trị được cung cấp

Hãy xem chức năng này trông như thế nào

# Understanding the Python setattr[] Function
setattr[
    object, # The object to set the attribute on
    name,   # The name of the attribute
    value   # The value of the attribute
]

Chúng ta có thể thấy rằng hàm có ba tham số. bản thân đối tượng, tên của thuộc tính và giá trị được đặt

Sử dụng setattr để đặt thuộc tính tồn tại

Hãy xem cách chúng ta có thể sử dụng hàm để đặt giá trị của thuộc tính

# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000

Hãy chia nhỏ đoạn mã trên làm gì

  1. Đầu tiên chúng ta tạo một lớp,
    # Setting the attribute of an object
    class Employee:
        def __init__[self, name, salary]:
            self.name = name
            self.salary = salary
    
    Nik = Employee["Nik", 75000]
    
    print['Before changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    setattr[Nik, "salary", 80000]
    
    print['After changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    # Returns:
    # Before changing attribute...
    # Nik.salary: 75000
    # After changing attribute...
    # Nik.salary: 80000
    1, lớp này có hai thuộc tính,
    # Setting the attribute of an object
    class Employee:
        def __init__[self, name, salary]:
            self.name = name
            self.salary = salary
    
    Nik = Employee["Nik", 75000]
    
    print['Before changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    setattr[Nik, "salary", 80000]
    
    print['After changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    # Returns:
    # Before changing attribute...
    # Nik.salary: 75000
    # After changing attribute...
    # Nik.salary: 80000
    2 và
    # Setting the attribute of an object
    class Employee:
        def __init__[self, name, salary]:
            self.name = name
            self.salary = salary
    
    Nik = Employee["Nik", 75000]
    
    print['Before changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    setattr[Nik, "salary", 80000]
    
    print['After changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    # Returns:
    # Before changing attribute...
    # Nik.salary: 75000
    # After changing attribute...
    # Nik.salary: 80000
    0
  2. Sau đó, chúng tôi khởi tạo một đối tượng Nhân viên mới và đặt hai thuộc tính ban đầu
  3. Sau đó, sử dụng hàm
    # Setting the attribute of an object
    class Employee:
        def __init__[self, name, salary]:
            self.name = name
            self.salary = salary
    
    Nik = Employee["Nik", 75000]
    
    print['Before changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    setattr[Nik, "salary", 80000]
    
    print['After changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    # Returns:
    # Before changing attribute...
    # Nik.salary: 75000
    # After changing attribute...
    # Nik.salary: 80000
    0 để sửa đổi thuộc tính
    # Setting the attribute of an object
    class Employee:
        def __init__[self, name, salary]:
            self.name = name
            self.salary = salary
    
    Nik = Employee["Nik", 75000]
    
    print['Before changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    setattr[Nik, "salary", 80000]
    
    print['After changing attribute...']
    print['Nik.salary:', Nik.salary]
    
    # Returns:
    # Before changing attribute...
    # Nik.salary: 75000
    # After changing attribute...
    # Nik.salary: 80000
    0

Sử dụng setattr để đặt thuộc tính không tồn tại

Trong ví dụ trên, chúng tôi đã sử dụng hàm

# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
0 để sửa đổi giá trị của một thuộc tính đã tồn tại. Tuy nhiên, chúng ta cũng có thể sử dụng nó để đặt một thuộc tính chưa tồn tại. Hãy thêm một thuộc tính bằng hàm
# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
0 vào cùng một lớp

# Setting the attribute of an object when the attribute doesn't exist
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

setattr[Nik, "location", "Toronto"]
print['Nik.location:', Nik.location]

# Returns:
# Nik.location: Toronto

Chúng ta có thể thấy rằng chức năng hoạt động trong việc thiết lập giá trị của thuộc tính, ngay cả khi thuộc tính đó không tồn tại trước đó

Tại sao Python setattr có thể dư thừa

Hàm Python

# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
0 hoạt động trong việc thiết lập các thuộc tính trong các đối tượng Python. Tuy nhiên, nó cũng có thể dư thừa vì có nhiều cách đơn giản hơn và có thể nói là nhiều cách Pythonic hơn để hoàn thành điều tương tự. Chúng ta có thể sử dụng ký hiệu dấu chấm để làm điều này

Hãy tạo lại ví dụ trên bằng ký hiệu dấu chấm

# Using other methods to set attributes
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]
Nik.salary = 80000
Nik.location = 'Toronto'

print["Nik.salary:", Nik.salary]
print["Nik.location:", Nik.location]

Chúng ta có thể thấy rằng cả hai phương pháp này đều hoạt động để thiết lập các thuộc tính một cách dễ dàng. Tuy nhiên, có một số đặc quyền khi sử dụng hàm

# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
0 – hãy đọc tiếp để tìm hiểu thêm

Cách đặt nhiều thuộc tính đối tượng trong Python với setattr

Một trong những lợi ích của việc sử dụng hàm

# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
0 là có thể đặt nhiều thuộc tính cùng một lúc. Hãy tưởng tượng rằng bạn được cung cấp một từ điển các thuộc tính thuộc về một đối tượng. Bạn có thể lặp lại những điều này và đặt chúng cho các thuộc tính khác nhau của một đối tượng

Hãy xem nó trông như thế nào

# Setting multiple attributes with Python setattr[]
class Employee:
    def __init__[self, name]:
        self.name = name

Nik = Employee["Nik"]
attributes = {
    'Age': 33,
    'Location': 'Toronto',
    'Salary': 75000
}

for attribute, value in attributes.items[]:
    setattr[Nik, attribute, value]

print[vars[Nik]]

# Returns: {'name': 'Nik', 'Age': 33, 'Location': 'Toronto', 'Salary': 75000}

Trong ví dụ trên, chúng tôi lặp lại từng khóa và giá trị trong từ điển. Sau đó, chúng tôi sử dụng hàm

# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
0 để thêm các thuộc tính và giá trị này. Cuối cùng, chúng tôi sử dụng hàm
# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
9 để in ra một từ điển chứa các thuộc tính của đối tượng

Khi setattr thất bại và cách khắc phục lỗi

Hàm Python

# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
0 sẽ không thành công nếu nó được sử dụng trên các đối tượng chưa tồn tại. Điều này có nghĩa là trước tiên một đối tượng cần được khởi tạo để ngăn ngừa bất kỳ lỗi nào. Do đó, hàm không thể được sử dụng để khởi tạo một đối tượng mà chỉ hoạt động với những đối tượng đã tồn tại

________số 8

Để giải quyết vấn đề này, trước tiên chúng ta cần tạo đối tượng

# Resolving the NameError Raised by setattr[]
class Employee:
    def __init__[self, name]:
        self.name = name

Nik = Employee["Nik"]
setattr[Nik, "age", 30]

Sự kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng hàm Python

# Setting the attribute of an object
class Employee:
    def __init__[self, name, salary]:
        self.name = name
        self.salary = salary

Nik = Employee["Nik", 75000]

print['Before changing attribute...']
print['Nik.salary:', Nik.salary]

setattr[Nik, "salary", 80000]

print['After changing attribute...']
print['Nik.salary:', Nik.salary]

# Returns:
# Before changing attribute...
# Nik.salary: 75000
# After changing attribute...
# Nik.salary: 80000
0 để đặt thuộc tính của một đối tượng thành một giá trị. Trước tiên, bạn đã học cách xác định chức năng và cách sử dụng nó cho cả thuộc tính đã tồn tại và cho thuộc tính chưa tồn tại. Sau đó, bạn đã biết lý do tại sao hàm có thể dư thừa vì bạn chỉ cần sử dụng ký hiệu dấu chấm

Sau đó, bạn đã học cách sử dụng hàm để đặt nhiều thuộc tính bằng vòng lặp for cũng như cách khắc phục các lỗi có thể xảy ra khi sử dụng hàm

Thuộc tính set được sử dụng để làm gì trong Python?

setattr[] dùng để làm gì? . Phương thức này cung cấp một phương tiện thay thế để gán giá trị cho các biến lớp, ngoài hàm tạo và hàm đối tượng. sets a new specified value argument to the specified attribute name of a class/function's defined object. This method provides an alternate means to assign values to class variables, in addition to constructors and object functions.

Thuộc tính trong Python với ví dụ là gì?

Để đưa ra định nghĩa cơ bản cho cả hai thuật ngữ, thuộc tính lớp là các biến lớp được kế thừa bởi mọi đối tượng của lớp . Giá trị của các thuộc tính lớp vẫn giữ nguyên cho mọi đối tượng mới. Giống như bạn sẽ thấy trong các ví dụ trong phần này, các thuộc tính của lớp được định nghĩa bên ngoài hàm __init__[].

Chủ Đề