Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tạo đối tượng instance trong Python

Để tạo các instance của một lớp, bạn gọi lớp sử dụng tên lớp và truyền vào bất kỳ đối số nào mà phương thức __init__ của nó chấp nhận.

"Điều này sẽ tạo đối tượng đầu tiên của lớp Employee"
emp1 = Employee("Zara", 2000)
"Điều này sẽ tạo đối tượng thứ hai của lớp Employee"
emp2 = Employee("Manni", 5000)

Bạn truy cập các thuộc tính của đối tượng bằng toán tử chấm với đối tượng. Biến lớp sẽ được truy cập bằng tên lớp như sau:

emp1.displayEmployee()
emp2.displayEmployee()
print "Total Employee %d" % Employee.empCount

Ví dụ

Bây giờ, kết hợp tất cả các khái niệm lại với nhau:

#!/usr/bin/python
class Employee:
    'Common base class for all employees'
    empCount = 0
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary
        Employee.empCount += 1
    def displayCount(self):
        print "Total Employee %d" % Employee.empCount
    def displayEmployee(self):
        print "Name : ", self.name, ", Salary: ", self.salary

"This would create first object of Employee class"
emp1 = Employee("Zara", 2000)
"This would create second object of Employee class"
emp2 = Employee("Manni", 5000)
emp1.displayEmployee()
emp2.displayEmployee()
print "Total Employee %d" % Employee.empCount

Kết quả

Khi mã trên được thực thi, nó cho kết quả sau:

Name : Zara ,Salary: 2000
Name : Manni ,Salary: 5000
Total Employee 2

Bạn có thể thêm, xóa hoặc sửa đổi các thuộc tính của lớp và đối tượng bất kỳ lúc nào:

emp1.age = 7  # Thêm thuộc tính 'age'
emp1.age = 8  # Sửa đổi thuộc tính 'age'
del emp1.age  # Xóa thuộc tính 'age'

Thay vì sử dụng các câu lệnh bình thường để truy cập thuộc tính, bạn có thể sử dụng các hàm sau:

  • getattr(obj, name[, default]) - để truy cập thuộc tính của đối tượng.
  • hasattr(obj, name) - để kiểm tra xem thuộc tính có tồn tại hay không.
  • setattr(obj, name, value) - để đặt một thuộc tính. Nếu thuộc tính không tồn tại, nó sẽ được tạo.
  • delattr(obj, name) - để xóa một thuộc tính.
hasattr(emp1, 'age')    # Trả về true nếu thuộc tính 'age' tồn tại
getattr(emp1, 'age')    # Trả về giá trị của thuộc tính 'age'
setattr(emp1, 'age', 8) # Đặt thuộc tính 'age' = 8
delattr(empl, 'age')    # Xóa thuộc tính 'age'