Cải thiện bài viết
Lưu bài viết
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
def
11 Hi Geeks6
Output:
100
p
=
a
11 Hi Geeks0
11 Hi Geeks1____1010____24
Các
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
4
2
3
4
5
p
5product[a, b]:
5
12 17.9859999999999970
=
512 17.9859999999999970
=
712 17.9859999999999974
Output:
11 Hi Geeks
def
6def
7=
def
7p
0 p
1
Các
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
a
3a
4
11 Hi Geeks33
a
611 Hi Geeks33
a
611 Hi Geeks33
12 17.9859999999999974
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