Giống như các ngôn ngữ khác [ví dụ: quá tải phương thức trong C ++] làm, Python không hỗ trợ quá tải phương thức theo mặc định. Nhưng có nhiều cách khác nhau để đạt được quá tải phương pháp trong Python. & NBSP;
Vấn đề với quá tải phương pháp trong Python là chúng ta có thể quá tải các phương thức nhưng chỉ có thể sử dụng phương thức được xác định mới nhất. & NBSP;
Python3
def
product[a, b]:
p
=
a
11 Hi Geeks0
11 Hi Geeks1
11 Hi Geeks3
11 Hi Geeks4
def
11 Hi Geeks6
p
=
a
11 Hi Geeks0
11 Hi Geeks1____1010____24
11 Hi Geeks3
11 Hi Geeks4
pip3 install multipledispatch8
pip3 install multipledispatch9
6 12 17.9859999999999970
6 12 17.9859999999999971
6 12 17.9859999999999970
6 12 17.9859999999999971
6 12 17.9859999999999974
Output:
100
Trong mã trên, chúng tôi đã xác định hai phương thức sản phẩm, nhưng chúng tôi chỉ có thể sử dụng phương thức sản phẩm thứ hai, vì Python không hỗ trợ quá tải phương thức. Chúng tôi có thể xác định nhiều phương thức cùng tên và các đối số khác nhau, nhưng chúng tôi chỉ có thể sử dụng phương thức được xác định mới nhất. Gọi phương thức khác sẽ tạo ra một lỗi. Giống như ở đây Gọi & NBSP; sẽ tạo ra một lỗi vì phương thức sản phẩm được xác định mới nhất có ba đối số.
Do đó, để khắc phục vấn đề trên, chúng ta có thể sử dụng các cách khác nhau để đạt được quá tải phương pháp.
Phương pháp 1 [không phải là phương pháp hiệu quả nhất]:
Chúng ta có thể sử dụng các đối số để làm cho cùng một chức năng hoạt động khác nhau, tức là theo các đối số.
Python3
def
6 12 17.9859999999999976
11 Hi Geeks0
6 12 17.9859999999999978
def
0 def
1=
=
def
44545
def
6def
7=
def
9
def
0 def
1=
=
__5555545
def
6def
7=
0
2
3
4
5
def
6def
7=
def
7p
0 p
1
11 Hi Geeks3
p
4p
5def
4
6 12 17.9859999999999970
6 12 17.9859999999999971
6 12 17.9859999999999970
=
06 12 17.9859999999999974
p
5product[a, b]:
5
6 12 17.9859999999999970
=
56 12 17.9859999999999970
=
76 12 17.9859999999999974
Output:
11 Hi Geeks
Vấn đề với mã trên là làm cho mã trở nên phức tạp hơn với nhiều câu lệnh IF/ELSE và không phải là cách mong muốn để đạt được quá tải phương thức.
Phương pháp 2 [hiệu quả]:
Bằng cách sử dụng nhiều công văn trang trí & nbsp;
Nhiều người trang trí công văn có thể được cài đặt bởi: & nbsp;
pip3 install multipledispatch
Python3
=
9 a
0a
1 a
2
a
3a
4a
5
6 12 17.9859999999999970
a
56 12 17.9859999999999974
def
11 Hi Geeks00
‘
11 Hi Geeks3
11 Hi Geeks09
a
3a
4a
5
6 12 17.9859999999999970
a
56 12 17.9859999999999970
a
56 12 17.9859999999999974
def
11 Hi Geeks19
11 Hi Geeks02
=
11 Hi Geeks23
11 Hi Geeks0
11 Hi Geeks25__
11 Hi Geeks3
11 Hi Geeks09
a
3a
4
11 Hi Geeks33
6 12 17.9859999999999970
11 Hi Geeks33
6 12 17.9859999999999970
11 Hi Geeks33
6 12 17.9859999999999974
def
11 Hi Geeks19
11 Hi Geeks02
=
11 Hi Geeks23
11 Hi Geeks0
11 Hi Geeks25__
11 Hi Geeks3
11 Hi Geeks09
pip3 install multipledispatch8
11 Hi Geeks53
6 12 17.9859999999999970
11 Hi Geeks55
11 Hi Geeks56
pip3 install multipledispatch8
11 Hi Geeks53
6 12 17.9859999999999970
11 Hi Geeks55
6 12 17.9859999999999970
11 Hi Geeks53
11 Hi Geeks56
pip3 install multipledispatch8
11 Hi Geeks65
6 12 17.9859999999999970
11 Hi Geeks67
6 12 17.9859999999999970
11 Hi Geeks69
11 Hi Geeks56
Output:
6 12 17.985999999999997
Trong phần phụ trợ, người điều phối tạo một đối tượng lưu trữ các triển khai khác nhau và trong thời gian chạy, nó chọn phương thức phù hợp là loại và số lượng tham số được truyền. & NBSP;