다형성 Python 예시와 함께

다형성이란 무엇입니까?

다형성은 다양한 형태로 발생하는 상태로 정의될 수 있습니다. 에 있는 개념이다 Python 객체가 정의된 프로그래밍 Python 다양한 방법으로 사용될 수 있습니다. 이를 통해 프로그래머는 파생 클래스에서 여러 메서드를 정의할 수 있으며 부모 클래스에 있는 것과 동일한 이름을 갖습니다. 이러한 시나리오는 다음에서 메서드 오버로드를 지원합니다. Python.

다형성 Opera토르

의 연산자 Python 수학 및 기타 여러 프로그래밍 작업을 수행하는 데 도움이 됩니다. 예를 들어, '+' 연산자는 두 정수 유형 간의 추가를 수행하는 데 도움이 됩니다. Python, 같은 방식으로 동일한 연산자가 문자열을 연결하는 데 도움이 됩니다. Python 프로그램 작성.

+(더하기)의 예를 들어보겠습니다. 연산자 Python 다형성의 적용을 표시하려면 Python 다음과 같이 :

Python 암호:

p = 55
q = 77
r = 9.5
g1 = "Guru"
g2 = "99!"
print("the sum of two numbers",p + q)
print("the data type of result is",type(p + q))
print("The sum of two numbers",q + r)
print("the data type of result is", type (q + r))
print("The concatenated string is", g1 + g2)
print("The data type of two strings",type(g1 + g2))

출력:

the sum of two numbers 132
the data type of result is <class 'int'>

The sum of the two numbers 86.5
the data type of result is <class 'float'>

The concatenated string is Guru99!
The data type of two strings <class 'str'>

위의 예는 연산자 오버로딩의 예로도 볼 수 있다.

사용자 정의 메소드의 다형성

사용자 정의 메소드 Python 프로그래밍 언어는 사용자가 생성하는 메서드이며 함수 이름과 함께 def 키워드를 사용하여 선언됩니다.

다형성 Python 프로그래밍 언어는 메소드 오버로딩과 오버라이딩을 통해 구현됩니다. Python def 키워드를 사용하고 하위 클래스와 상위 클래스 모두에서 동일한 이름을 가진 메소드를 정의합니다.

아래에 표시된 다음 예를 살펴보겠습니다. –

Python 암호:

from math
import pi
class square:
    def __init__(self, length):
    self.l = length
def perimeter(self):
    return 4 * (self.l)
def area(self):
    return self.l * self.l
class Circle:
    def __init__(self, radius):
    self.r = radius
def perimeter(self):
    return 2 * pi * self.r
def area(self):
    return pi * self.r * * 2
# Initialize the classes
sqr = square(10)
c1 = Circle(4)
print("Perimeter computed for square: ", sqr.perimeter())
print("Area computed for square: ", sqr.area())
print("Perimeter computed for Circle: ", c1.perimeter())
print("Area computed for Circle: ", c1.area())

출력:

Perimeter computed for square:  40
Area computed for square:  100
Perimeter computed for Circle:  25.132741228718345
Area computed for Circle:  50.26548245743669

위 코드에는 원형 및 사각형 클래스에 정의된 두 가지 사용자 정의 메서드인 둘레와 면적이 있습니다.

위에 표시된 것처럼 Circle 클래스와 Square 클래스 모두 다형성의 특성을 나타내는 동일한 메서드 이름을 호출하여 필요한 출력을 전달합니다.

함수의 다형성

내장된 함수 Python 여러 데이터 유형을 실행할 수 있도록 설계되고 호환됩니다. ~ 안에 Python, Len() 주요 내장 기능 중 하나입니다.

목록, 튜플, 문자열 및 사전과 같은 여러 데이터 유형에서 작동합니다. Len() 함수는 이러한 다양한 데이터 유형에 맞춰 명확한 정보를 반환합니다.

다음 그림은 다형성이 어떻게 적용될 수 있는지 보여줍니다. Python 내장 기능과 관련하여: –

함수의 다형성

다음 프로그램은 다형성의 적용을 설명하는 데 도움이 됩니다. Python: -

Python 암호:

print ("The length of string Guru99 is ",len("Guru99"))
print("The length of list is ",len(["Guru99","Example","Reader"]))
print("The length of dictionary is ",len({"Website name":"Guru99","Type":"Education"}))

출력:

The length of string Guru99 is 6
The length of the list is 3
The length of the dictionary is 2

함수의 다형성

위의 예에서 Len() 함수는 Python 문자열, 목록 및 사전 데이터 유형에 대해 각각 다형성을 수행합니다.

다형성과 상속

상속 Python 정의된 하위 클래스가 다른 기본 클래스로부터 속성을 상속받는 프로그래밍 개념으로 정의될 수 있습니다. Python.

두 가지 열쇠가 있습니다 Python 메서드 오버라이딩과 메서드 오버로딩이라는 개념이 있습니다.

  • 메소드 오버로딩에서는 Python 주어진 코드에서 서로 다른 기능을 수행하거나 실행하기 위해 동일한 이름을 가진 메서드를 생성하는 기능을 제공합니다. 메소드를 오버로드할 수 있으며 이를 사용하여 더 간단한 용어로 다양한 작업을 수행할 수 있습니다.
  • 메서드 재정의에서 Python 부모 및 자식 클래스에서 비슷한 이름을 공유하는 값을 재정의합니다.

아래에 표시된 다형성과 상속의 다음 예를 살펴보겠습니다.

Python 암호:

class baseclass:
    def __init__(self, name):
    self.name = name
def area1(self):
    pass
def __str__(self):
    return self.name
class rectangle(baseclass):
    def __init__(self, length, breadth):
    super().__init__("rectangle")
self.length = length
self.breadth = breadth
def area1(self):
    return self.length * self.breadth
class triangle(baseclass):
    def __init__(self, height, base):
    super().__init__("triangle")
self.height = height
self.base = base
def area1(self):
    return (self.base * self.height) / 2
a = rectangle(90, 80)
b = triangle(77, 64)
print("The shape is: ", b)
print("The area of shape is", b.area1())
print("The shape is:", a)
print("The area of shape is", a.area1())

출력:

The shape is: a triangle
The area of a shape is 2464.0

The shape is: a rectangle
The area of a shape is 7200

위의 코드에서 메소드는 init 메소드와area1 메소드로 정의된 동일한 이름을 갖습니다. 그런 다음 square 및 직사각형 클래스의 객체를 사용하여 서로 다른 작업을 수행하고 정사각형 및 직사각형 영역의 출력을 제공하는 두 메서드를 호출합니다.

클래스 메소드를 사용한 다형성

The Python 프로그래밍을 통해 프로그래머는 클래스 메소드를 사용하여 다형성 및 메소드 오버로딩을 달성할 수 있습니다. 의 다양한 수업 Python 전체에서 동일한 이름으로 선언된 메소드를 가질 수 있습니다. Python 암호.

In Python, 두 개의 서로 다른 클래스를 정의할 수 있습니다. 하나는 하위 클래스이고 상위 클래스라고 하는 다른 정의된 클래스에서 특성을 파생합니다.

다음 예제는 클래스 메서드를 사용한 다형성 개념을 보여줍니다.

Python 암호:

class amazon:
    def __init__(self, name, price):
    self.name = name
self.price = price
def info(self):
    print("This is product and am class is invoked. The name is {self.name}. This costs {self.price} rupees.")
class flipkart:
    def __init__(self, name, price):
    self.name = name
self.price = price
def info(self):
    print(f "This is product and fli class is invoked. The name is {self.name}. This costs {self.price} rupees.")
FLP = flipkart("Iphone", 2.5)
AMZ = amazon("Iphone", 4)
for product1 in (FLP, AMZ):
    product1.info()

출력:

This is a product, and fli class is invoked. The name is iPhone, and this costs 2.5 rupees.
This is a product, and am class is invoked. The name is iPhone, and this costs 4 rupees.

위 코드에서 flipkart와 amazon이라는 두 개의 서로 다른 클래스는 동일한 메서드 이름인 info와 init을 사용하여 각각의 제품 가격 견적을 제공하고 다형성 개념을 더욱 자세히 설명합니다. Python.

메소드 오버로딩과 컴파일 타임 다형성의 차이점

컴파일 타임 다형성에서 컴파일러는 Python 프로그램이 통화를 해결합니다. 컴파일 타임 다형성은 메소드 오버로딩을 통해 달성됩니다.

The Python 컴파일러는 런타임 동안 다형성에 대한 호출을 확인하지 않습니다. 또한 동일한 메서드가 유사한 시그니처나 속성을 전달하지만 서로 다른 클래스의 일부를 형성하는 메서드 재정의로 분류됩니다.

제품 개요

  • 다형성은 다양한 형태로 발생하는 상태로 정의될 수 있습니다.
  • 의 연산자 Python 수학 및 기타 여러 프로그래밍 작업을 수행하는 데 도움이 됩니다.
  • 사용자 정의 메소드 Python 프로그래밍 언어는 사용자가 생성하는 메서드이며 함수 이름과 함께 def 키워드를 사용하여 선언됩니다.
  • 다형성 Python 다양한 클래스와 메서드를 위해 작성된 코드의 재사용성을 촉진하는 등 여러 가지 바람직한 특성을 제공합니다.
  • 자식 클래스는 파생 클래스이며 부모 클래스에서 속성을 가져옵니다.
  • 다형성은 런타임 메서드 재정의와 컴파일 타임 메서드 오버로딩을 통해서도 달성됩니다.
  • 다형성 Python 연산자 오버로딩과 클래스 메서드를 통해서도 달성됩니다.