Hướng dẫn what is meant by instance of a class in python? - thể hiện của một lớp trong python có nghĩa là gì?
Python đã là một ngôn ngữ hướng đối tượng kể từ khi nó tồn tại. Bởi vì điều này, việc tạo và sử dụng các lớp và đối tượng là hết sức dễ dàng. Chương này giúp bạn trở thành một chuyên gia trong việc sử dụng hỗ trợ lập trình hướng đối tượng của Python. Show
Nếu bạn không có bất kỳ kinh nghiệm nào trước đây với lập trình hướng đối tượng (OO), bạn có thể muốn tham khảo một khóa học giới thiệu về nó hoặc ít nhất là một hướng dẫn nào đó để bạn nắm bắt được các khái niệm cơ bản. Tuy nhiên, đây là sự giới thiệu nhỏ của lập trình hướng đối tượng (OOP) để đưa bạn ở tốc độ- Tổng quan về thuật ngữ OOP
Tạo các lớp họcTuyên bố lớp tạo ra một định nghĩa lớp mới. Tên của lớp ngay lập tức theo lớp từ khóa theo sau là một dấu hai chấm như sau - class ClassName: 'Optional class documentation string' class_suite
Thí dụSau đây là ví dụ về lớp Python đơn giản - 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
Tạo đối tượng thể hiệnĐể tạo các phiên bản của một lớp, bạn gọi lớp bằng tên lớp và truyền trong bất kỳ đối số nào của phương thức __init__ của nó chấp nhận. "This would create first object of Employee class" emp1 = Employee("Zara", 2000) "This would create second object of Employee class" emp2 = Employee("Manni", 5000) Truy cập các thuộc tínhBạn truy cập các thuộc tính của đối tượng bằng toán tử DOT 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 Bây giờ, đặt 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 Khi mã trên được thực thi, nó sẽ tạo ra 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 các lớp và đối tượng bất cứ lúc nào - emp1.age = 7 # Add an 'age' attribute. emp1.age = 8 # Modify 'age' attribute. del emp1.age # Delete 'age' attribute. Thay vì sử dụng các câu lệnh thông thường để truy cập các thuộc tính, bạn có thể sử dụng các hàm sau -
hasattr(emp1, 'age') # Returns true if 'age' attribute exists getattr(emp1, 'age') # Returns value of 'age' attribute setattr(emp1, 'age', 8) # Set attribute 'age' at 8 delattr(empl, 'age') # Delete attribute 'age' Thuộc tính lớp tích hợpMỗi lớp Python tiếp tục theo dõi các thuộc tính tích hợp và chúng có thể được truy cập bằng toán tử DOT như bất kỳ thuộc tính nào khác-
Đối với lớp trên, chúng tôi hãy cố gắng truy cập tất cả các thuộc tính này - #!/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 print "Employee.__doc__:", Employee.__doc__ print "Employee.__name__:", Employee.__name__ print "Employee.__module__:", Employee.__module__ print "Employee.__bases__:", Employee.__bases__ print "Employee.__dict__:", Employee.__dict__ Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - Employee.__doc__: Common base class for all employees Employee.__name__: Employee Employee.__module__: __main__ Employee.__bases__: () Employee.__dict__: {'__module__': '__main__', 'displayCount': Phá hủy các vật thể (bộ sưu tập rác)Python xóa các đối tượng không cần thiết (các loại hoặc trường hợp lớp tích hợp) tự động để giải phóng không gian bộ nhớ. Quá trình mà Python định kỳ lấy lại các khối bộ nhớ không còn được sử dụng được gọi là bộ sưu tập rác. Trình thu gom rác của Python chạy trong quá trình thực hiện chương trình và được kích hoạt khi số lượng tham chiếu của đối tượng đạt đến 0. Số lượng tham chiếu của một đối tượng thay đổi khi số lượng bí danh chỉ ra nó thay đổi. Số lượng tham chiếu của một đối tượng tăng lên khi nó được gán một tên mới hoặc được đặt trong một container (danh sách, tuple hoặc từ điển). Số lượng tham chiếu của đối tượng giảm khi nó bị xóa với DEL, tham chiếu của nó được chỉ định lại hoặc tham chiếu của nó đi ra khỏi phạm vi. Khi số lượng tham chiếu của một đối tượng đạt đến 0, Python sẽ tự động thu thập nó. 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.salary0 Bạn thường sẽ không nhận thấy khi người thu gom rác phá hủy một ví dụ mồ côi và đòi lại không gian của nó. Nhưng một lớp có thể thực hiện phương thức đặc biệt __del __ (), được gọi là phá hủy, được gọi khi thể hiện sắp bị phá hủy. Phương pháp này có thể được sử dụng để làm sạch bất kỳ tài nguyên không bộ nhớ nào được sử dụng bởi một thể hiện. Thí dụBộ hủy __del __ () này in tên lớp của một thể hiện sắp bị phá hủy - 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.salary1 Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - 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.salary2 Lưu ý - lý tưởng nhất, bạn nên xác định các lớp của mình trong tệp riêng biệt, sau đó bạn nên nhập chúng vào tệp chương trình chính của mình bằng câu lệnh nhập. − Ideally, you should define your classes in separate file, then you should import them in your main program file using import statement. Di truyền lớpThay vì bắt đầu từ đầu, bạn có thể tạo một lớp bằng cách lấy nó từ một lớp có từ trước bằng cách liệt kê lớp cha trong ngoặc đơn sau tên lớp mới. Lớp con thừa hưởng các thuộc tính của lớp cha và bạn có thể sử dụng các thuộc tính đó như thể chúng được xác định trong lớp con. Một lớp con cũng có thể ghi đè các thành viên và phương thức dữ liệu từ cha mẹ. Cú phápCác lớp học có nguồn gốc được tuyên bố giống như lớp cha mẹ của họ; Tuy nhiên, một danh sách các lớp cơ sở để kế thừa được đưa ra sau tên lớp - 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.salary3 Thí dụ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.salary4 Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - 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.salary5 Bộ hủy __del __ () này in tên lớp của một thể hiện sắp bị phá hủy - 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.salary6 Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
Thay vì bắt đầu từ đầu, bạn có thể tạo một lớp bằng cách lấy nó từ một lớp có từ trước bằng cách liệt kê lớp cha trong ngoặc đơn sau tên lớp mới.Lớp con thừa hưởng các thuộc tính của lớp cha và bạn có thể sử dụng các thuộc tính đó như thể chúng được xác định trong lớp con. Một lớp con cũng có thể ghi đè các thành viên và phương thức dữ liệu từ cha mẹ. Cú phápclass 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.salary7 Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - 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.salary8 Các lớp học có nguồn gốc được tuyên bố giống như lớp cha mẹ của họ; Tuy nhiên, một danh sách các lớp cơ sở để kế thừa được đưa ra sau tên lớp -Cách tương tự, bạn có thể lái một lớp từ nhiều lớp cha như sau -
Đại diện chuỗi có thể đánh giáCuộc gọi mẫu: repr (obj) __str __ (tự) Thí dụ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.salary9 Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - "This would create first object of Employee class" emp1 = Employee("Zara", 2000) "This would create second object of Employee class" emp2 = Employee("Manni", 5000)0 Bộ hủy __del __ () này in tên lớp của một thể hiện sắp bị phá hủy -Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - Thí dụ"This would create first object of Employee class" emp1 = Employee("Zara", 2000) "This would create second object of Employee class" emp2 = Employee("Manni", 5000)1 Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - "This would create first object of Employee class" emp1 = Employee("Zara", 2000) "This would create second object of Employee class" emp2 = Employee("Manni", 5000)2 Bộ hủy __del __ () này in tên lớp của một thể hiện sắp bị phá hủy - "This would create first object of Employee class" emp1 = Employee("Zara", 2000) "This would create second object of Employee class" emp2 = Employee("Manni", 5000)3 Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau - "This would create first object of Employee class" emp1 = Employee("Zara", 2000) "This would create second object of Employee class" emp2 = Employee("Manni", 5000)4 Một ví dụ của một lớp là gì?Trong lập trình dựa trên lớp, các đối tượng được tạo ra từ các lớp bởi các chương trình con được gọi là các hàm tạo và bị phá hủy bởi các chất hủy diệt.Một đối tượng là một thể hiện của một lớp và có thể được gọi là một thể hiện lớp hoặc đối tượng lớp;Instantiation sau đó còn được gọi là xây dựng.
Ví dụ của một ví dụ lớp là gì?Các biến thể hiện trong Java là các biến không tĩnh được xác định trong một lớp bên ngoài bất kỳ phương thức, hàm tạo hoặc khối.Mỗi đối tượng khởi tạo của lớp có một bản sao hoặc thể hiện riêng của biến đó.Một biến thể hiện thuộc về một lớp.Bạn phải tự hỏi về chính xác thì một ví dụ là gì?
__ ví dụ trong Python là gì?Một thuộc tính thể hiện là một biến Python thuộc về một và chỉ một đối tượng.Biến này chỉ có thể truy cập trong phạm vi của đối tượng này và nó được xác định bên trong hàm tạo hàm, __init __ (tự, ..) của lớp.a Python variable belonging to one, and only one, object. This variable is only accessible in the scope of this object and it is defined inside the constructor function, __init__(self,..) of the class. |