python-CSD-kursu/python-temel/overloading.2.py

37 lines
839 B
Python

class Number:
def __init__(self, number):
self.number = number
def __add__(self, x):
if isinstance(x, (int, float)):
return Number(self.number + x)
return Number(self.number + x.number)
def __sub__(self, x):
if type(x) is int or type(x) is float:
return Number(self.number - x)
return Number(self.number - x.number)
def __mul__(self, x):
if isinstance(x, (int, float)):
return Number(self.number * x)
return Number(self.number * x.number)
def __truediv__(self, x):
if isinstance(x, (int, float)):
return Number(self.number / x)
return Number(self.number / x.number)
def __str__(self):
return str(self.number)
x = Number(10)
y = Number(20)
z = x + y
print(z)
z = x + 10
print(z)