Disusun Oleh:
num1 = 1
num2 = 2
print(num1+num2)
Demikian pula untuk tipe data string, (+)operator digunakan untuk melakukan
penggabungan.
str1 = "Python"
str2 = "Programming"
print(str1+" "+str2)
Di sini, kita dapat melihat bahwa satu operator( + )telah digunakan untuk
menjalankan operasi berbeda untuk tipe data berbeda. Ini adalah salah satu kejadian
polimorfisme paling sederhana di Python.
print(len("Programiz"))
print(len(["Python", "Java", "C"]))
print(len({"Name": "John", "Address": "Nepal"}))
Di sini, kita dapat melihat bahwa banyak tipe data seperti string, list, tuple, set, dan
kamus dapat bekerja dengan len()fungsi tersebut. Namun, kita dapat melihat bahwa ini
mengembalikan informasi spesifik tentang tipe data tertentu.
Class Cat:
Def __init__(self, name, age):
Self.name = name
Self.age = age
Def info(self):
Print(f”I am a cat. My name is {self.name}. I am {self.age} years old.”)
Def make_sound(self):
Print(“Meow”)
Class Dog:
Def __init__(self, name, age):
Self.name = name
Self.age = age
Def info(self):
Print(f”I am a dog. My name is {self.name}. I am {self.age} years old.”)
Def make_sound(self):
Print(“Bark”)
Cat1 = Cat(“Kitty”, 2.5)
Dog1 = Dog(“Fluffy”, 4)
For animal in (cat1, dog1):
Animal.make_sound()
Animal.info()
Animal.make_sound()
Outputnya :
Meow
Meow
Bark
Bark
Di sini, kami telah membuat dua kelas Catdan Dog. Mereka berbagi struktur yang
serupa dan memiliki nama metode info()dan make_sound().
Polimorfisme memungkinkan kita mengakses metode dan atribut yang diganti ini
yang memiliki nama yang sama dengan kelas induknya.
Contohnya:
from math import pi
class Shape:
self.name = name
def area(self):
pass
def fact(self):
def __str__(self):
return self.name
class Square(Shape):
super().__init__("Square")
self.length = length
def area(self):
return self.length**2
def fact(self):
class Circle(Shape):
super().__init__("Circle")
self.radius = radius
def area(self):
return pi*self.radius**2
a = Square(4)
b = Circle(7)
print(b)
print(b.fact())
print(a.fact())
print(b.area())
Outputnya :
Lingkaran
I adalah bangun dua dimensi.
Persegi mempunyai sudut masing-masing sebesar 90 derajat.
153.93804002589985
Di sini, kita dapat melihat bahwa metode seperti __str__(), yang belum ditimpa di
kelas anak, digunakan dari kelas induk.
Karena polimorfisme, juru bahasa Python secara otomatis mengenali metode
fact()untuk objek a(Persegikelas) ditimpa. Jadi, ia menggunakan yang ditentukan di kelas
anak.
Di sisi lain, sejak fact()metode untuk objekBtidak ditimpa, ini digunakan dari
IndukMembentukkelas.