Quá tải và ghi đè trong Python w3schools

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á bán
Xem các khóa học

Hơn 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 [86.268 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, 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, hàm quá tải không có trong python nhưng có thể đạt được bằng cách sử dụng trình trang trí, xác định hàm bằng cách đặt 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 nạp chồng 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ó

Phần 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 nạp chồng hàm hoạt động 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 –

Ghi đè trong Python là gì?

Ghi đè phương thức trong Python là gì?

Ghi đè phương thức trong Python với ví dụ là gì?

Ghi đè phương thức trong Python là khi bạn có hai phương thức có cùng tên, mỗi phương thức thực hiện các tác vụ khác nhau . Đây là một tính năng quan trọng của tính kế thừa trong Python. Trong ghi đè phương thức, lớp con có thể thay đổi các chức năng được định nghĩa bởi các lớp tổ tiên của nó.

Ghi đè phương thức trong Python w3schools là gì?

Ghi đè phương thức là một khả năng của bất kỳ ngôn ngữ lập trình hướng đối tượng nào cho phép một lớp con hoặc lớp con cung cấp một triển khai cụ thể của một phương thức đã được cung cấp bởi một trong các lớp cha hoặc lớp cha của nó

__ init __ trong Python là gì?

Phương thức __init__ là tương đương Python với hàm tạo C++ theo cách tiếp cận hướng đối tượng . Hàm __init__ được gọi mỗi khi một đối tượng được tạo từ một lớp. Phương thức __init__ cho phép lớp khởi tạo các thuộc tính của đối tượng và không phục vụ mục đích nào khác. Nó chỉ được sử dụng trong các lớp học.

Chủ Đề