Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Python3
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;
11 Hi Geeks3
11 Hi Geeks4
def
product[a, b]:
p
=
a
11 Hi Geeks0
11 Hi Geeks1
11 Hi Geeks3
11 Hi Geeks4
pip3 install multipledispatch8
pip3 install multipledispatch9
12 17.9859999999999970
12 17.9859999999999971
12 17.9859999999999970
12 17.9859999999999971
12 17.9859999999999974
Output:
100
def
11 Hi Geeks6
p
=
a
11 Hi Geeks0
11 Hi Geeks1____1010____24
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ố.
We
can use the arguments to make the same function work differently i.e. as per the arguments.
Python3
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 hàm hoạt động khác nhau, tức là theo các đối số.
def
12 17.9859999999999976
11 Hi Geeks0
12 17.9859999999999978
def
0 def
1=
=
def
44545
def
6def
7=
0
def
6def
7=
def
9
def
0 def
1=
=
__5555545
11 Hi Geeks3
p
4p
5def
4
12 17.9859999999999970
12 17.9859999999999971
12 17.9859999999999970
=
012 17.9859999999999974
p
5product[a, b]:
5
12 17.9859999999999970
=
512 17.9859999999999970
=
712 17.9859999999999974
Output:
11 Hi Geeks
2
3
4
5
def
6def
7=
def
7p
0 p
1
By Using Multiple Dispatch Decorator
Multiple Dispatch Decorator Can
be installed by:
pip3 install multipledispatch
Python3
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.
a
3a
4a
5a
6a
5
12 17.9859999999999974
Phương pháp 2 [hiệu quả]: Bằng cách sử dụng nhiều công cụ trang trí & nbsp; có thể cài đặt nhiều công cụ trang trí công văn bởi: & nbsp;
=
9 a
0a
1 a
2
11 Hi Geeks3
11 Hi Geeks09
a
3a
4a
5a
6a
5a
6a
5
12 17.9859999999999974
def
11 Hi Geeks00
‘
11 Hi Geeks3
11 Hi Geeks09
def
11 Hi Geeks19
def
11 Hi Geeks00
‘
11 Hi Geeks3
11 Hi Geeks09
pip3 install multipledispatch8
11 Hi Geeks53
a
611 Hi Geeks55
a
611 Hi Geeks53
11 Hi Geeks58
pip3 install multipledispatch8
11 Hi Geeks60
a
611 Hi Geeks62
a
611 Hi Geeks64
11 Hi Geeks58
Output:
12 17.985999999999997
def
11 Hi Geeks19