Trong python, nạp chồng hàm được định nghĩa là khả năng hoạt động của hàm theo các cách khác nhau tùy thuộc vào số lượng tham số được truyền cho nó như 0, một, hai sẽ phụ thuộc vào cách xác định hàm. Chức năng quá tải cung cấp khả năng sử dụng lại mã, loại bỏ độ phức tạp và cải thiện tính rõ ràng của mã cho người dùng sẽ sử dụng hoặc làm việc trên mã đó. Quá tải hàm trong python có thể có hai loại, một là quá tải các hàm tích hợp và quá tải các hàm tùy chỉnh hoặc do người dùng xác định trong python. Chúng ta sẽ xem xét cả hai trong các phần dưới đây. Nói chung, không phải ngôn ngữ lập trình nào cũng hỗ trợ nạp chồng hàm nhưng trong trường hợp này, python hỗ trợ nạp chồng hàm
Gói phát triển phần mềm tất cả trong một[hơn 600 khóa học, hơn 50 dự án]
Giá
Xem khóa học
600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời
4. 6 [83.281 xếp hạng]
Cú pháp nạp chồng hàm trong Python
Cú pháp và ví dụ như sau
Bắt đầu khóa học phát triển phần mềm miễn phí của bạn
Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác
cú pháp
Trong python, chúng ta có thể định nghĩa một phương thức theo cách mà nó có thể được gọi theo nhiều cách khác nhau bằng cách sử dụng số lượng tham số khác nhau. Chúng ta sẽ xem một ví dụ nạp chồng hàm có thể nhận 0 hoặc 1 đối số và cú pháp của nó như sau
Thí dụ
class World:
def hello[self, name=None]:
if name is not None:
print [“Hello “, name]
else:
print[“Hello”]
obj = World # calling function without any argument
obj.hello[“srinivas”] # calling function with an argument.
Trong ví dụ cú pháp trên, chúng ta đã tạo một lớp Thế giới với một phương thức/hàm hello trong đó chúng ta đặt đối số đầu tiên là Không để chúng ta có thể gọi hàm có hoặc không có đối số. Chúng tôi đã tạo một đối tượng của lớp Thế giới và sử dụng đối tượng này, chúng tôi sẽ gọi phương thức của nó bằng 0 hoặc một đối số. Để xem quá tải hàm hoạt động như thế nào, chúng ta sẽ gọi hàm có tham số bằng 0 là obj. hello[] và với một tham số là obj. hello[“srinivas”] và đầu ra của chương trình trên như sau. Ví dụ trên có tối đa một biến nhưng không giới hạn ở đó chúng ta có thể có một số tham số
đầu ra
Quá tải chức năng hoạt động như thế nào trong Python?
Hãy cho chúng tôi xem cách quá tải các chức năng hoạt động trong python bằng một ví dụ như dưới đây. Cho hàm tính diện tích hình vuông và hình chữ nhật
Mã số
def area[l, b]:
c = l*b
return c
def area[size]:
c = size*size
return c
area[4]
area[5,6]
đầu ra
Trong python, khi chúng ta định nghĩa 2 hàm trùng tên thì hàm mà chúng ta định nghĩa sau này chỉ là hàm hợp lệ trong python. Vì vậy, khi chúng tôi thực hiện khu vực [4], nó sẽ thực thi đúng nhưng khi chúng tôi thực hiện khu vực [5,6] sẽ báo lỗi cho biết hàm khu vực [] nhận chính xác một đối số. Vì vậy, theo mặc định, chức năng quá tải không có trong python nhưng có thể đạt được điều đó bằng cách sử dụng các trình trang trí, xác định các hàm bằng cách đặt các giá trị mặc định của tham số thành Không có
Hãy để chúng tôi có một ví dụ về nạp chồng hàm bằng cách định nghĩa một hàm với các giá trị tham số mặc định là Không có
Mã số
class Compute:
def area[self, x=None, y=None]:
if x!=None and y !=None:
return x*y
elif x!=None:
return x*x
else:
return 0
obj = Compute[]
obj.area[]
obj.area[6]
obj.area[2,8]
đầu ra
Trong ví dụ trên, chúng ta đã định nghĩa một lớp Tính toán với một hàm được đặt tên là khu vực mà chúng ta có các giá trị tham số mặc định là Không để hàm có thể được gọi với các tham số 0, 1 và 2. Nếu chúng ta có một đối số thì hàm diện tích sẽ trả về giá trị 0 ở đầu ra của nó, nếu nó có một tham số thì hàm diện tích sẽ trả về bình phương của tham số và nếu nó có hai tham số thì hàm diện tích sẽ trả về tích của hai tham số như . Chúng ta đã tạo một đối tượng cho lớp Tính toán để chúng ta có thể truy cập hàm area[] với các tham số khác nhau. Ở đây chúng tôi gọi là obj. area[] cho đầu ra là 0, obj. khu vực [6] cho đầu ra là 36 và obj. area[2,8] cho kết quả là 16, là tích của 2 và 8
Bây giờ chúng ta sẽ xem nạp chồng hàm có sẵn với ví dụ nạp chồng hàm len[] như bên dưới
Quá tải chức năng tích hợp
Mã số
class Purchase:
def __init__[self, basket, consumer]:
self.basket= list[basket]
self.consumer= consumer
def __len__[self]:
return 10
purchase = Purchase[[‘pencil’,’book’],’python’]
print[len[purchase]]
Trong ví dụ trên, chúng tôi đã định nghĩa một lớp Mua trong đó nó có hàm tạo __init__ với các tham số giỏ là một danh sách và người tiêu dùng là một biến chuỗi và gán cho bản thân. Chúng ta có một hàm __len__ đang ghi đè hàm len[] tích hợp sẵn của python. Chúng tôi đã tạo một đối tượng mua của lớp Mua với các tham số sẽ được khởi tạo. Khi chúng tôi thực thi câu lệnh in mà chúng tôi đang gọi len[purchase] sẽ trả về 10 khi chúng tôi quá tải hàm len[] tích hợp sẵn của python. Nếu nó gọi hàm len[] tích hợp, nó sẽ báo lỗi vì một đối tượng không có bất kỳ hàm len[] nào
đầu ra
Chương trình trên khi quá tải hàm thành công
Đầu ra của chương trình trên, nếu chúng ta không thực hiện nạp chồng hàm là lỗi
LoạiLỗi. đối tượng của loại 'purchase' không có len[]
Ví dụ về nạp chồng hàm trong Python
Ví dụ một lớp sinh viên có hàm hello với tên tham số có giá trị mặc định là None như bên dưới
Ví dụ 1
Mã số
class Student:
def sayHello[self, name=None]:
if name is not None:
self.name = name
print[“Hey, ” , name]
else:
print[“Hey”]
stu = Student[]
stu.sayHello[]
stu.sayHello[‘dasu’]
Trong ví dụ trên, chúng ta có một lớp Sinh viên với hàm sayHello[] trong đó giá trị tham số mặc định được đặt thành Không để hàm có thể được gọi với một trong hai tham số không, một nhưng không giới hạn đối với chúng. Chúng ta đã tạo một stu của lớp Student để chúng ta có thể truy cập hàm sayHello[]. Trong khi gọi stu. sayHello[] đầu ra của nó sẽ là “hey”, và trong khi gọi stu. sayHello[“dasu”] đầu ra của nó sẽ là “hey dasu”
đầu ra
Ví dụ #2
Quá tải chức năng bằng cách sử dụng trình trang trí quá tải trong python như bên dưới
Mã số
class Overloading:
@Overload
@signature[]
def getMethod[self]:
print[“First method”]
@getMethod.overload
@signature[“int”]
def getMethod[self,i]:
print[“Second method”, i]
obj = Overloading[]
obj.getMethod[]
obj.getMethod[2]
Trong ví dụ trên, bằng cách sử dụng hàm trang trí quá tải, nó có thể giải quyết giữa hàm gọi có đối số và hàm không có đối số. Chúng tôi đã khai báo một obj cho Nạp chồng lớp mà chúng tôi có thể truy cập chức năng của nó
Sự kết luận
Cuối cùng là tổng quan về nạp chồng hàm trong python. Cho đến giờ chúng ta đã thảo luận về định nghĩa nạp chồng hàm, cú pháp của nạp chồng hàm, cách thức hoạt động của nạp chồng hàm trong python, các loại nạp chồng hàm khác nhau như nạp chồng hàm tích hợp và nạp chồng hàm tùy chỉnh, và các ví dụ về nạp chồng hàm. Tôi hy vọng sau khi đọc bài viết này, bạn sẽ hiểu rõ hơn về nạp chồng hàm trong python, làm thế nào để nạp chồng hàm trong python theo nhiều cách khác nhau
Bài viết được đề xuất
Đây là hướng dẫn về Nạp chồng hàm trong Python. Ở đây chúng tôi thảo luận về tổng quan ngắn gọn về Nạp chồng hàm trong Python và các ví dụ của nó cùng với việc triển khai mã của nó. Bạn cũng có thể xem qua các bài viết được đề xuất khác của chúng tôi để tìm hiểu thêm –