Nạp chồng hàm trong python

Các cách tiếp cận khác nhau để giải quyết vấn đề Quá tải toán tử trong Python được tóm tắt trong đoạn mã sau

Nội dung chính Show

  • Nạp chồng toán tử trong Python là gì?
  • Ví dụ nạp chồng toán tử là gì?
  • Quá tải và ghi đè toán tử trong Python là gì?
  • Phương thức nạp chồng cơ bản trong Python là gì?
  • Cú pháp nạp chồng là gì?
  • Ví dụ nạp chồng toán tử trong Python là gì?
  • Hai loại quá tải là gì?
  • Quá tải giải thích các loại của nó là gì?
  • Quá tải trong OOP là gì?
  • Tính đa hình trong Python là gì?
  • Quá tải toán tử trong Python là gì?
  • Quá tải toán tử '+'
  • Phương pháp ma thuật trong Python
  • kết thúc
  • Quá tải toán tử trong Python giải thích bằng ví dụ là gì?
  • Nạp chồng toán tử là gì và cho ví dụ?
  • Nạp chồng toán tử trong Python * là gì?
  • Toán tử trong Python với ví dụ là gì?

# Python program to show use of
# + operator for different purposes.
 
print[1 + 2]
 
# concatenate two strings
print["Geeks"+"For"]
 
# Product two numbers
print[3 * 4]
 
# Repeat the String
print["Geeks"*4]
# Operator overloading
# Overload + and += operators
class Complex_number:
    def __init__[self, real, imaginary]:
        self.real = real
        self.imaginary = imaginary
    def __add__[self, right]:       # binary operators must provide 2 parameters
        return Complex_number[self.real + right.real, 
                       self.imaginary + right.imaginary]
    def __iadd__[self, right]:
        """Overrides the += operator."""
        self.real += right.real
        self.imaginary += right.imaginary
        return self
    def __repr__[self]:
        return [f'[{self.real}' + 
                [' + ' if self.imaginary >= 0 else ' - '] +
                f'{abs[self.imaginary]}i]']
x = Complex_number[real = 2, imaginary = 4]
x
# [2 + 4i]
y = Complex_number[real = 5, imaginary = -1]
y
# [5 - 1i]
x + y
# [7 + 3i]
x += y
x
# [7 + 3i]
y
# [5 - 1i]

Bằng cách điều tra nhiều tình huống sử dụng khác nhau, chúng tôi có thể trình bày cách giải quyết vấn đề Quá tải toán tử trong Python đã xuất hiện

Nạp chồng toán tử trong Python 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ử

Ví dụ nạp chồng toán tử là gì?

Điều này có nghĩa là C++ có khả năng cung cấp cho các toán tử một ý nghĩa đặc biệt cho một kiểu dữ liệu, khả năng này được gọi là nạp chồng toán tử. Ví dụ: chúng ta có thể quá tải một toán tử '+' trong một lớp như Chuỗi để chúng ta có thể nối hai chuỗi chỉ bằng cách sử dụng +. 30-Jun-2022

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

Python3. 1. Trong nạp chồng phương thức, các phương thức hoặc hàm phải có cùng tên và khác chữ ký. Trong khi ghi đè phương thức, các phương thức hoặc hàm phải có cùng tên và cùng chữ ký. 29-Apr-2021

Phương thức nạp chồng cơ bản trong Python là gì?

Nạp chồng phương thức là lớp có các phương thức trùng tên nhưng khác đối số. Các lập luận khác nhau sẽ dựa trên một số đối số và loại đối số. Nó được sử dụng trong một lớp duy nhất

Cú pháp nạp chồng là gì?

Khi chúng tôi quá tải toán tử nhị phân cho các loại do người dùng xác định bằng cách sử dụng mã. obj3 = obj1 + obj2;

Ví dụ nạp chồng toán tử trong Python là gì?

Nạp chồng toán tử trong Python là khả năng của một toán tử đơn lẻ thực hiện nhiều hơn một thao tác dựa trên lớp [loại] toán hạng. Ví dụ: toán tử + có thể được sử dụng để cộng hai số, nối hai chuỗi hoặc hợp nhất hai danh sách. 09-Mar-2020

Hai loại quá tải là gì?

Chủ yếu có hai loại quá tải, tôi. e. nạp chồng hàm và nạp chồng toán tử. Quá tải chức năng cải thiện khả năng đọc mã, do đó giữ nguyên tên cho cùng một hành động. Quá tải toán tử cho phép xác định lại chức năng hiện có của toán tử, do đó mang lại ý nghĩa đặc biệt cho chúng

Quá tải giải thích các loại của nó là gì?

Quá trình có hai hay nhiều hàm trùng tên nhưng khác tham số được gọi là nạp chồng hàm. Hàm được xác định lại bằng cách sử dụng các loại đối số khác nhau hoặc một số lượng đối số khác. Chỉ thông qua những khác biệt này mà trình biên dịch có thể phân biệt giữa các hàm

Quá tải trong OOP là gì?

quá tải. Nạp chồng phương thức là một dạng đa hình trong OOP. Tính đa hình cho phép các đối tượng hoặc phương thức hành động theo những cách khác nhau, tùy theo phương tiện mà chúng được sử dụng. Một trong những cách mà các phương thức hoạt động theo các loại đối số và số lượng đối số của chúng là nạp chồng phương thức. 26-Jul-2019

Tính đa hình trong Python là gì?

Nghĩa đen của tính đa hình là điều kiện xuất hiện ở các dạng khác nhau. Đa hình là một khái niệm rất quan trọng trong lập trình. Nó đề cập đến việc sử dụng một thực thể kiểu đơn [phương thức, toán tử hoặc đối tượng] để biểu diễn các kiểu khác nhau trong các tình huống khác nhau

Trong lập trình hướng đối tượng tồn tại khái niệm này gọi là “Đa hình”. Đa hình có nghĩa là “một hành động, nhiều hình thức”. OOP cho phép các đối tượng thực hiện một hành động theo nhiều cách khác nhau. Một cách để thực hiện Đa hình là thông qua nạp chồng toán tử

Trong hướng dẫn về python này, chúng ta sẽ tìm hiểu nạp chồng toán tử trong python là gì với các ví dụ và cả về các phương thức ma thuật trong python

Cập nhật cho bạn những xu hướng công nghệ mới nhất, Tham gia TechVidvan trên Telegram

Quá tải toán tử trong Python là gì?

Nạp chồng toán tử là quá trình sử dụng toán tử theo những cách khác nhau tùy thuộc vào toán hạng. Bạn có thể thay đổi cách toán tử trong Python hoạt động trên các kiểu dữ liệu khác nhau

Một ví dụ rất phổ biến và tiện lợi là toán tử Phép cộng [+]

Chỉ cần nghĩ cách toán tử '+' hoạt động trên hai số và cùng một toán tử hoạt động trên hai chuỗi. Nó thực hiện “Phép cộng” trên các số trong khi nó thực hiện “Nối” trên các chuỗi

Các toán tử trong Python hoạt động cho các lớp dựng sẵn, như int, str, list, v.v. Nhưng bạn có thể mở rộng khả năng hoạt động của chúng sao cho chúng cũng hoạt động trên các đối tượng của các lớp do người dùng định nghĩa

Hãy thử nó

class bubble:
    def __init__[self, volume]:
        self.volume = volume

Chúng tôi đã xác định bong bóng lớp có khối lượng thuộc tính. Hãy xem điều gì xảy ra khi chúng ta kết hợp hai bong bóng. Chúng ta sẽ nhận được khối lượng của bong bóng kết hợp

>>> b1 = bubble[20]
>>> b2 = bubble[30]

Và bây giờ hãy thêm b1 và b2 để hợp nhất các bong bóng

>>> b1 + b2

đầu ra

LoạiLỗi. [các] loại toán hạng không được hỗ trợ cho +. 'bong bóng' và 'bong bóng'

Rõ ràng điều này không hoạt động ngay bây giờ. Đó là bởi vì chúng tôi chưa mở rộng khả năng hoạt động của nó và nó chỉ hoạt động trên các lớp tích hợp

Vậy làm cách nào để chúng tôi làm cho các toán tử này cũng hoạt động trên bong bóng lớp do người dùng định nghĩa?

Các phương thức ma thuật trong Python là các phương thức đặc biệt bắt đầu và kết thúc bằng dấu gạch dưới kép [ __ ]

__init__[] là một trong những phương pháp như vậy

Một phương thức kỳ diệu khác mà chúng ta có thể sử dụng là phương thức __str__[]

Phương thức __str__[] cho phép bạn kiểm soát cách một đối tượng trong lớp của bạn được in

Vì vậy, nếu chúng ta thêm phương thức này vào lớp bong bóng của mình và in một đối tượng của lớp, thì nó sẽ hoạt động như sau

class bubble:
    def __init__[self, volume]:
        self.volume = volume

    def __str__[self]:
        return "volume is " + str[self.volume]

Bây giờ làm điều này trong thiết bị đầu cuối

>>> b1 = bubble[20]
>>> print[b1]

đầu ra

âm lượng là 20
>>>

Quá tải toán tử '+'

Cuối cùng, hãy thêm khối mã sẽ làm cho toán tử '+' hoạt động trên các đối tượng bong bóng. Hóa ra, chúng tôi cũng có một phương pháp kỳ diệu cho việc này, tôi. e. , phương thức __add__[]

class bubble:
    def __init__[self, volume]:
        self.volume = volume

    def __str__[self]:
        return "volume is " + str[self.volume]

    def __add__[self, other]:
        volume = self.volume + other.volume
        return bubble[volume]

Ngoài ‘self’, phương thức __add__[] nhận một đối số khác là ‘other’. 'Bản thân' và 'người khác' đề cập đến hai đối tượng đóng vai trò là toán hạng

Chúng tôi thực hiện phép cộng các khối lượng của 'bản thân' và 'khác', sau đó gán giá trị này cho một khối lượng biến mới. Sau đó, phương thức này trả về một đối tượng mới của lớp bong bóng với thể tích là biến thể hiện của nó

Hãy tạo một đối tượng mới là tổng của 2 bong bóng

________số 8

đầu ra

Khối lượng là 50

Bây giờ chúng ta có thể thực hiện phép cộng trên các đối tượng của lớp chúng ta

Hãy xem những gì xảy ra đằng sau hậu trường

  • Khi chúng ta thêm b1 + b2, trình thông dịch gọi b1. __thêm__[b2]
  • Và b1. __add__[b2] thực sự được thực thi dưới dạng bong bóng. __thêm__[b1, b2]
  • Điều này sau đó sẽ trả về bong bóng [50]
  • Vì vậy, b3 = b1 + b2 thực sự tương đương với b3 = bong bóng [50]

Bằng cách này, chúng ta cũng có thể quá tải các toán tử khác

Lưu ý rằng trong trường hợp các toán tử so sánh, phương thức ma thuật sẽ trả về một biểu thức boolean là kết quả của phép so sánh chứ không phải một đối tượng

Bạn sẽ tìm thấy nhiều toán tử python khác nhau và các phương thức kỳ diệu của chúng trong bảng bên dưới

Phương pháp ma thuật trong Python

PHƯƠNG PHÁP MA THUẬT BIỂU HIỆN NGƯỜI DÙNG Phép cộngb1 + b2 __add__[] Phép trừb1 – b2 __sub__[] Phép nhânb1 * b2 __mul__[] Bộ phậnb1 / b2 __truediv__[] Sức mạnhb1 ** b2 __pow__[] Phân chia tầngb1 // b2 __floordiv__[] Toán tử modulob1 % b2 __mod__[] Dịch chuyển trái theo bitb1 > b2 __rshift__[] Bitwise NOT~b1 __invert__[] Biến bit VÀb1 & b2 __and__[] Bit theo bit HOẶCb1. b2 __or__[] Bitwise XORb1 ^ b2 __xor__[] Nhỏ hơnb1 < b2 __lt__[] Nhỏ hơn bằngb1 b2__ne__[] __le__[] Lớn hơnb1 > b2 __gt__[] Lớn hơn bằngb1 >= b2 __ge__[] Bằngb1 == b2 __eq__[] Không bằngb1. =  b2__ne__[]

kết thúc

Trong bài viết này, chúng ta đã học cách sử dụng một sức mạnh rất đặc biệt đi kèm với tính đa hình trong Python. Chúng ta đã biết nạp chồng toán tử trong Python là gì. Chúng tôi cũng đã học cách chúng tôi có thể mở rộng khả năng hoạt động của một toán tử sao cho nó có thể hoạt động trên các lớp do người dùng định nghĩa của chúng tôi

Chủ Đề