Quá tải trong Python là gì

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 –

Quá tải trong Python với ví dụ là gì?

Ví dụ: toán tử + sẽ thực hiện phép cộng số học trên hai số, hợp nhất hai danh sách hoặc nối hai chuỗi. Tính năng này trong Python cho phép cùng một toán tử có ý nghĩa khác nhau tùy theo ngữ cảnh được gọi là nạp chồng toán tử.

Quá tải và ghi đè trong Python là gì?

Quá tải phương thức là xác định hai hoặc nhiều phương thức có cùng tên nhưng khác tham số . Python không hỗ trợ nạp chồng phương thức. Ghi đè phương thức là định nghĩa lại một phương thức của lớp cha trong lớp dẫn xuất. Ghi đè yêu cầu kế thừa để thực hiện.

quá tải giải thích là gì?

Quá tải là tải quá nhiều vào hoặc trên một thứ gì đó , chẳng hạn như quá tải điện làm chập mạch. Quá tải gây ra một "Quá nhiều. " tình hình. Quá tải là đẩy một cái gì đó hoặc ai đó quá xa.

Quá tải là gì và ví dụ?

Trong Java, hai hoặc nhiều phương thức có thể có cùng tên nếu chúng khác nhau về tham số [số lượng tham số khác nhau, loại tham số khác nhau . Các phương thức này được gọi là phương thức quá tải và tính năng này được gọi là nạp chồng phương thức. Ví dụ. hàm void[] {. }

Chủ Đề