Nạp chồng phương thức trong Python Programiz

Ghi đè phương thức là một khái niệm của lập trình hướng đối tượng, cho phép chúng ta thay đổi cách thực hiện của một hàm trong lớp con đã được định nghĩa trong lớp cha. Đó là khả năng của một lớp con thay đổi việc triển khai bất kỳ phương thức nào đã được cung cấp bởi một trong các lớp cha (tổ tiên) của nó

Các điều kiện sau phải được đáp ứng để ghi đè một chức năng

  1. Kế thừa nên có. Chức năng ghi đè không thể được thực hiện trong một lớp. Chúng ta cần lấy một lớp con từ một lớp cha
  2. Hàm được định nghĩa lại trong lớp con phải có cùng chữ ký như trong lớp cha i. e. cùng một số tham số

Như chúng ta đã tìm hiểu về khái niệm Kế thừa, chúng ta biết rằng khi một lớp con kế thừa một lớp cha, nó cũng có quyền truy cập vào các biến và phương thức public

class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")
0(công cụ sửa đổi truy cập trong python), ví dụ:

# parent class
class Parent:
    # some random function
    def anything(self):
        print('Function defined in parent class!')
        
# child class
class Child(Parent):
    # empty class definition
    pass


obj2 = Child()
obj2.anything()

Hàm được định nghĩa trong lớp cha

Trong khi lớp con có thể truy cập các phương thức của lớp cha, nó cũng có thể cung cấp một triển khai mới cho các phương thức của lớp cha, được gọi là ghi đè phương thức


Ví dụ ghi đè phương thức Python

Hãy lấy một ví dụ rất thú vị mà chúng ta cũng đã có trong hướng dẫn thừa kế. Có một lớp cha tên là

class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")
1

class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")

Hãy tạo một lớp con

class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")
2 sẽ mở rộng lớp
class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")
1

class Herbivorous(Animal):
    
    # function feed
	def feed(self):
	    print("I eat only plants. I am vegetarian.")

Trong lớp con

class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")
2, chúng ta đã ghi đè phương thức
class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")
0

Vì vậy, bây giờ khi chúng ta tạo một đối tượng của lớp

class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")
2 và gọi phương thức
class Animal:
    # properties
	multicellular = True
	# Eukaryotic means Cells with Nucleus
	eukaryotic = True
	
	# function breathe
	def breathe(self):
	    print("I breathe oxygen.")
    
    # function feed
	def feed(self):
	    print("I eat food.")
0, phiên bản bị ghi đè sẽ được thực thi

Rất tiếc, chúng tôi có các loại phần tử khác nhau như Đối tượng, Lớp, v.v. trong các phần tử này, chúng tôi triển khai khả năng sử dụng lại trong các phần tử kéo là Kế thừa và Đa hình. Trong chủ đề này, Nạp chồng phương thức nằm trong Đa hình. Đa hình là một kỹ thuật tạo ra các chức năng khác nhau với một định dạng duy nhất

Ở đây chúng ta có hai loại đa hình

  • Quá tải phương thức
  • Ghi đè phương thức

Quá tải phương thức

    • Nạp chồng phương thức là lớp có các phương thức trùng tên nhưng khác đối số
    • Các lập luận khác nhau sẽ dựa trên một số đối số và loại đối số
    • Nó được sử dụng trong một lớp duy nhất
  • Nó cũng được sử dụng để viết mã rõ ràng cũng như giảm độ phức tạp

Ghi đè phương thức

  • Ghi đè phương thức là phương thức có cùng tên với cùng đối số
  • Nó được thực hiện với sự kế thừa cũng
  • Nó chủ yếu được sử dụng cho các quá trình giảm bộ nhớ

Học Python từ cấp độ Cơ bản đến Nâng cao với Đào tạo Thực hành, Vị trí, v.v. với
Đào tạo Python ở Bangalore

Quá tải phương thức trong Python

Quá tải phương thức là một khái niệm về Đa hình. Nó xuất hiện dưới các yếu tố của OOPS. Nó thực sự là một đa hình thời gian biên dịch. Nó hoạt động trong cùng một tên phương thức và các đối số khác nhau. Ở đây trong Python cũng hỗ trợ các khái niệm oops. Nhưng nó không phải là ngôn ngữ dựa trên oops. Nó cũng hỗ trợ quá tải phương thức này

Thông thường trong python, chúng ta không đặt tên giống nhau cho các phương thức khác nhau. Nhưng quá tải là một phương thức hoặc toán tử để thực hiện các chức năng khác nhau có cùng tên. tôi. e các phương thức khác nhau các tham số của chúng để truyền cho các phương thức trong khi các toán tử đã khác toán hạng của chúng

Dưới đây là một số ưu điểm của Nạp chồng phương thức trong Python

  • Thông thường các phương pháp được sử dụng để giảm độ phức tạp. Quá tải phương thức thậm chí nó làm giảm độ phức tạp hơn trong chương trình cũng cải thiện sự rõ ràng của mã
  • Nó cũng được sử dụng để tái sử dụng

Nó cũng có một số nhược điểm khi tạo ra nhiều nhầm lẫn hơn trong các khái niệm thừa kế

Trong python, chúng tôi tạo một phương thức duy nhất với các đối số khác nhau để xử lý Quá tải phương thức. Ở đây chúng tôi tạo một phương thức có 0 hoặc nhiều tham số và cũng xác định các phương thức dựa trên số lượng tham số

Ví dụ

class Employee:
def Hello_Emp(self,e_name=None):
if e_name is not None:
print("Hello "+e_name)
else:
print("Hello ")
emp1=Employee()
emp1.Hello_Emp()
emp1.Hello_Emp("Besant")

Trong ví dụ này, lớp có tên là Nhân viên có một phương thức có tên là Hello_Emp(). Phương thức này được sử dụng như một khái niệm nạp chồng phương thức. Nó sẽ được thực hiện bằng cách sử dụng các tham số. Ở đây chúng tôi sử dụng tham số có tên là e_name được đặt là Không có. Nếu tôi gọi phương thức này bằng các đối tượng trong thời gian đó nếu tôi chuyển giá trị cho tham số có nghĩa là nó sẽ in giá trị. Nếu không, nó không in bất cứ thứ gì. Vì vậy, ở đây chúng tôi có hai chức năng sẽ được thực hiện trong chương trình này

đầu ra

Hello
Hello Besant

Trong kết quả này, trước tiên chúng tôi gọi phương thức Hello_Emp mà không có bất kỳ tham số nào để nó chỉ in Hello

Lần tới chúng ta gọi phương thức tương tự với giá trị tham số là besant để nó in ra bản Hello Besant

Nhận đào tạo Python định hướng theo vị trí từ các chuyên gia trong ngành với chương trình đào tạo Python của chúng tôi ở Chennai

Ví dụ

class Area:
def find_area(self,a=None,b=None):
if a!=None and b!=None:
print("Area of Rectangle:",(a*b))
elif a!=None:
print("Area of square:",(a*a))
else:
print("Nothing to find")
obj1=Area()
obj1.find_area()
obj1.find_area(10)
obj1.find_area(10,20)

đầu ra

________số 8

Trong ví dụ này, chúng tôi cũng triển khai khái niệm Quá tải phương thức với sự trợ giúp của Tham số. Trong ví dụ này sử dụng để tìm diện tích của các hình dạng khác nhau. Nếu bạn lấy diện tích hình vuông nghĩa là bạn chỉ cần truyền giá trị cho chính tham số đó. Trong cùng một phương pháp nếu bạn muốn tìm diện tích hình chữ nhật có nghĩa là bạn truyền giá trị cho cả giá trị a và b. Nếu bạn vượt qua mà không có bất kỳ giá trị nào có nghĩa là nó sẽ không trả lại gì để tìm

Nạp chồng phương thức trong Python là gì?

Hai hoặc nhiều phương thức có cùng tên nhưng khác số lượng tham số hoặc khác loại tham số hoặc cả hai . Các phương thức này được gọi là nạp chồng phương thức và đây được gọi là nạp chồng phương thức.

Phương thức có quá tải Đa hình trong Python không?

Quá tải phương thức trong Python là một loại Đa hình thời gian biên dịch bằng cách sử dụng mà chúng ta có thể định nghĩa hai hoặc nhiều phương thức trong cùng một lớp với .

Ghi đè phương thức và nạp chồng phương thức trong Python là gì?

Nạp chồng phương thức cho phép nhiều phương thức trong cùng một lớp có cùng tên nhưng khác tham số. Ghi đè phương thức cho phép lớp cha và lớp con có các phương thức có cùng tên và cùng tham số. Phương thức của lớp con sẽ ghi đè lên phương thức của lớp cha

Python có sử dụng quá tải không?

Python không hỗ trợ nạp chồng hàm như các ngôn ngữ khác và tham số hàm không có kiểu dữ liệu.