class Index:
__value=int
def __init__(self):
self.__value=0
def GetIndex(self):
return self.__value
def NextIndex(self):
self.__value=self.__value+1
idx1=Index()
idx2=Index()
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
idx1.NextIndex()
idx2.NextIndex()
idx2.NextIndex()
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
class Index:
__value=int
def __init__(self):
self.__value=0
def GetIndex(self):
return self.__value
#overload increment operator
def __iadd__(self, op):
self.__value=self.__value+op
return self
idx1=Index()
idx2=Index()
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
idx1+=1 #overloaded increment operator invoked
idx2+=1 #overloaded increment operator invoked
idx2+=1 #overloaded increment operator invoked
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
class Index:
__value=int
def __init__(self):
self.__value=0
def GetIndex(self):
return self.__value
def __iadd__(self, op):
self.__value+=1
return self
idx1=Index()
idx2=Index()
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
idx2+=1
idx1+=1
idx2+=1
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
class Index:
__value=int
def __init__(self):
self.__value=0
def GetIndex(self):
return self.__value
#overload increment operator
def __iadd__(self, op):
self.__value=self.__value+op
return self
idx1=Index()
idx2=Index()
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
idx1+=1
idx2+=1
idx2+=1
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
class Index:
__value=int
def __init__(self, val=0):
self.__value=val
def GetIndex(self):
return self.__value
#overload increment operator
def __iadd__(self, op):
self.__value=self.__value+op
return self
idx1=Index(2)
idx2=Index(2)
idx3=Index()
idx4=Index()
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
idx3._Index__value=idx1._Index__value
idx1+=1
idx2+=1
idx4=idx2
print "Index1 =", idx1.GetIndex()
print "Index3 =", idx3.GetIndex()
print "Index2 =", idx2.GetIndex()
print "Index4 =", idx4.GetIndex()
class Index:
__value=int
def __init__(self, val=0):
self.__value=val
def GetIndex(self):
return self.__value
#overload increment operator
def __iadd__(self, op):
self.__value=self.__value+op
return self
#overload decrement operator
def __isub__(self, op):
self.__value=self.__value-op
return self
#overload negation operator
def __neg__(self):
return Index(-self.__value)
idx1=Index()
idx2=Index()
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
idx2+=1
idx1=-idx2
idx2+=1
idx2-=1
print "Index1 =", idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
class date:
__day=int
__month=int
__year=int
def __init__(self, d=0, m=0, y=0):
if isinstance(d, int):
self.__day=d
self.__month=m
self.__year=y
else:
self.__day=0
self.__month=0
self.__year=0
def read(self):
self.__day, self.__month, self.__year=[int(x) for x in raw_input("Enter date <dd mm yyyy>: ").split()]
def show(self):
print "%s:%s:%s" %(self.__day, self.__month, self.__year),
def IsLeapYear(self):
if (self.__year%4==0 and self.__year%100!=0) or (self.__year % 400==0):
return 1
else:
return 0
def thisMonthMaxDay(self):
m=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if self.__month==2 and self.IsLeapYear():
return 29
else:
return m[self.__month-1]
def __iadd__(self, op): #overloading increment operator
self.__day+=1
if self.__day>self.thisMonthMaxDay():
self.__day=1
self.__month+=1
if self.__month>12:
self.__month=1
self.__year+=1
return self
def nextday(d):
print 'Date',
d.show()
d+=1 #overloaded increment operator invoked
print "on increment becomes",
d.show()
print ""
d1=date(14, 4, 1971)
d2=date(28, 2, 1992)
d3=date(28, 2, 1993)
d4=date(31, 12, 1995)
nextday(d1)
nextday(d2)
nextday(d3)
nextday(d4)
today=date()
today.read()
nextday(today)
def AddComplex(self, c2):
temp=Complex()
temp._Complex__real=self._Complex__real+c2._Complex__real
temp._Complex__imag=self._Complex__imag+c2._Complex__imag
return temp
class Complex:
__real=float
__imag=float
def __init__(self):
self.__real=self.__imag=0
def getdata(self):
self.__real=float(raw_input("Real part ? "))
self.__imag=float(raw_input("Imag part ? "))
AddComplex=AddComplex
def outdata(self, msg):
print "%s(%0.1f, %0.1f)" %(msg, self.__real, self.__imag)
c1=Complex()
c2=Complex()
c3=Complex()
print "Enter Complex Number c1..."
c1.getdata()
print "Enter Complex Number c2..."
c2.getdata()
c3=c1.AddComplex(c2)
c3.outdata("c3 = c1.AddComplex(c2) : ")
def __add__(self, c2):
temp=Complex()
temp._Complex__real=self._Complex__real+c2._Complex__real
temp._Complex__imag=self._Complex__imag+c2._Complex__imag
return temp
class Complex:
__real=float
__imag=float
def __init__(self):
self.__real=self.__imag=0
def getdata(self):
self.__real=float(raw_input("Real part ? "))
self.__imag=float(raw_input("Imag part ? "))
#overloading + operator
__add__=__add__
def outdata(self, msg):
print "%s(%0.1f, %0.1f)" %(msg, self.__real, self.__imag)
c1=Complex()
c2=Complex()
c3=Complex()
print "Enter Complex Number c1..."
c1.getdata()
print "Enter Complex Number c2..."
c2.getdata()
c3=c1+c2 #invoking the overloaded + operator
c3.outdata("c3 = c1 + c2: ")
def __add__(self, c2):
temp=Complex()
temp._Complex__real=self._Complex__real+c2._Complex__real
temp._Complex__imag=self._Complex__imag+c2._Complex__imag
return temp
def __sub__(self, c2):
temp=Complex()
temp._Complex__real=self._Complex__real-c2._Complex__real
temp._Complex__imag=self._Complex__imag-c2._Complex__imag
return temp
def __mul__(self, c2):
temp=Complex()
temp._Complex__real=self._Complex__real*c2._Complex__real-self._Complex__imag*c2._Complex__imag
temp._Complex__imag=self._Complex__real*c2._Complex__imag+self._Complex__imag*c2._Complex__real
return temp
def __div__(self, c2):
temp=Complex()
qt=c2._Complex__real*c2._Complex__real+c2._Complex__imag *c2._Complex__imag
temp._Complex__real=(self._Complex__real*c2._Complex__real+self._Complex__imag*c2._Complex__imag)/qt
temp._Complex__imag=(self._Complex__imag*c2._Complex__real-self._Complex__real*c2._Complex__imag)/qt
return temp
class Complex:
__real=float
__imag=float
def __init__(self):
self.__real=self.__imag=0
def getdata(self):
self.__real=float(raw_input("Real part ? "))
self.__imag=float(raw_input("Imag part ? "))
#overloading +, -, * and / operator
__add__=__add__
__sub__=__sub__
__mul__=__mul__
__div__=__div__
def outdata(self, msg):
print "%s(%g, %g)" %(msg, self.__real, self.__imag)
c1=Complex()
c2=Complex()
c3=Complex()
print "Enter Complex Number c1..."
c1.getdata()
print "Enter Complex Number c2..."
c2.getdata()
print "Entered Complex numbers are..."
c1.outdata("c1 = ")
c2.outdata("c2 = ")
print "Computational results are..."
c3=c1+c2 #invoking the overloaded + operator
c3.outdata("c3 = c1 + c2: ")
c3=c1-c2 #invoking the overloaded - operator
c3.outdata("c3 = c1 - c2: ")
c3=c1*c2 #invoking the overloaded * operator
c3.outdata("c3 = c1 * c2: ")
c3=c1/c2 #invoking the overloaded / operator
c3.outdata("c3 = c1 / c2: ")
c3 = c1 + c2 + c1 + c2
c3.outdata("c3 = c1 + c2 + c1 + c2: ")
c3 = c1 * c2 + c1 / c2
c3.outdata("c3 = c1 * c2 + c1 / c2: ")
BUFF_SIZE=50
class string:
__Str=[None]*BUFF_SIZE
def __init__(self, MyStr=None):
if isinstance(MyStr, str):
self.__Str=MyStr
else:
self.__Str=""
def echo(self):
print self.__Str
def __add__(self, s):
temp=string(self._string__Str)
temp._string__Str+=s._string__Str
return temp
str1=string("Welcome to ")
str2=string("Operator Overloading")
str3=string()
print "Before str3 = str1 + str2;.."
print "str1 = ",
str1.echo()
print "str2 = ",
str2.echo()
print "str3 = ",
str3.echo()
str3=str1+str2
print "After str3 = str1 + str2;.."
print "str1 = ",
str1.echo()
print "str2 = ",
str2.echo()
print "str3 = ",
str3.echo()
(false, true)=(0, 1) #enum type
type =['false', 'true']
class Index:
__value=int
def __init__(self, val=0):
self.__value=val
def GetIndex(self):
return self.__value
#overloading < operator
def __lt__(self, idx):
return true if self.__value<idx.__value else false #?: operator
idx1=Index(5)
idx2=Index(10)
print 'Index1 =', idx1.GetIndex()
print "Index2 =", idx2.GetIndex()
if idx1<idx2: #using the overloaded < operator
print "Index1 is less than Index2"
else:
print "Index1 is not less than Index2"
(false, true)=(0, 1) #enum type
type =['false', 'true']
BUFF_SIZE=50
class string:
__Str=[None]*BUFF_SIZE
def __init__(self):
self.__Str=""
def read(self):
self.__Str=raw_input()
def echo(self):
print self.__Str,
#overloading < operator
def __lt__(self, s):
if self.__Str < s.__Str:
return true
else:
return false
#overloading > operator
def __gt__(self, s):
if self.__Str > s.__Str:
return true
else:
return false
#overloading == operator
def __eq__(self, MyStr):
if self.__Str ==MyStr:
return true
else:
return false
str1=string()
str2=string()
while(1):
print "Enter String1 <'end' to stop>:",
str1.read()
if str1=="end": #using overloaded == operator
break
print 'Enter String2:',
str2.read()
print 'Comparison status:',
str1.echo()
if str1<str2: #using overloaded < operator
print "<",
elif str1>str2:
print ">", #using overloaded > operator
else:
print "=",
str2.echo()
print ""
print "Bye.!! That's all folks.!"
def __iadd__(self, c2):
temp=Complex()
temp._Complex__real=self._Complex__real+c2._Complex__real
temp._Complex__imag=self._Complex__imag+c2._Complex__imag
return temp
def __isub__(self, c2):
temp=Complex()
temp._Complex__real=self._Complex__real-c2._Complex__real
temp._Complex__imag=self._Complex__imag-c2._Complex__imag
return temp
def __imul__(self, c2):
temp=Complex()
temp._Complex__real=self._Complex__real*c2._Complex__real-self._Complex__imag*c2._Complex__imag
temp._Complex__imag=self._Complex__real*c2._Complex__imag+self._Complex__imag*c2._Complex__real
return temp
def __idiv__(self, c2):
temp=Complex()
qt=c2._Complex__real*c2._Complex__real+c2._Complex__imag *c2._Complex__imag
temp._Complex__real=(self._Complex__real*c2._Complex__real+self._Complex__imag*c2._Complex__imag)/qt
temp._Complex__imag=(self._Complex__imag*c2._Complex__real-self._Complex__real*c2._Complex__imag)/qt
return temp
class Complex:
__real=float
__imag=float
def __init__(self):
self.__real=self.__imag=0
def getdata(self):
self.__real=float(raw_input("Real part ? "))
self.__imag=float(raw_input("Imag part ? "))
#overloading +=, -=, *= and /= operator
__iadd__=__iadd__
__isub__=__isub__
__imul__=__imul__
__idiv__=__idiv__
def outdata(self, msg):
print "%s(%g, %g)" %(msg, self.__real, self.__imag)
c1=Complex()
c2=Complex()
c3=Complex()
print "Enter Complex Number c1..."
c1.getdata()
print "Enter Complex Number c2..."
c2.getdata()
print "Entered Complex numbers are..."
c1.outdata("c1 = ")
c2.outdata("c2 = ")
print "Computational results are..."
c3=c1
c3+=c2 #invoking the overloaded += operator
c3.outdata("let c3 = c1, c3+=c2: ")
c3=c1
c3-=c2 #invoking the overloaded -= operator
c3.outdata("let c3 = c1, c3-=c2: ")
c3=c1
c3*=c2 #invoking the overloaded *= operator
c3.outdata("let c3 = c1, c3*=c2: ")
c3=c1
c3/=c2 #invoking the overloaded / operator
c3.outdata("let c3 = c1, c3/=c2: ")
def __iadd__(self, c2):
self._Complex__real=self._Complex__real+c2._Complex__real
self._Complex__imag=self._Complex__imag+c2._Complex__imag
return self
class Complex:
__real=float
__imag=float
def __init__(self):
self.__real=self.__imag=0
def getdata(self):
self.__real=float(raw_input("Real part ? "))
self.__imag=float(raw_input("Imag part ? "))
#overloading += operator
__iadd__=__iadd__
def outdata(self, msg):
print "%s(%g, %g)" %(msg, self.__real, self.__imag)
c1=Complex()
c2=Complex()
c3=Complex()
print "Enter Complex Number c1..."
c1.getdata()
print "Enter Complex Number c2..."
c2.getdata()
c1 += c2 #using overloaded += operator
c3 = c1
print "On execution of c3 = c1 += c2.."
c1.outdata("Complex c1: ")
c2.outdata("Complex c2: ")
c3.outdata("Complex c3: ")
ARRAY_SIZE=10
def read(self):
for i in range(ARRAY_SIZE):
print "vector[", i, "] = ? ",
self._vector__array[i]=int(raw_input())
def sum(self):
Sum=0
for i in range(ARRAY_SIZE):
Sum+=self._vector__array[i]
return Sum
class vector:
__array=[int]
def new(self):
myvector=vector()
myvector.__array=[int]*ARRAY_SIZE
return myvector
def delete(self):
del self
read=read
sum=sum
my_vector=vector()
my_vector=my_vector.new()
print "Enter Vector data..."
my_vector.read()
print "Sum of Vector =", my_vector.sum()
del my_vector
class Meter:
__length=float
def __init__(self, InitLength=0.0):
self.__length=InitLength/100.0
def float(self):
LengthCms=self.__length*100.0
return LengthCms
def GetLength(self):
self.__length=float(raw_input("Enter Length (in meters): "))
def ShowLength(self):
print "Length (in meter) =", self.__length
length1=float(raw_input("Enter Lenthg (in cms): "))
meter1=Meter(length1)
meter1.ShowLength()
meter2=Meter()
length2=float
meter2.GetLength()
length2=meter2.float()
print "Length (in cms) =", length2
BUFF_SIZE=50
class string:
__Str=[None]*BUFF_SIZE
def __init__(self, MyStr=None):
if isinstance(MyStr, str):
self.__Str=MyStr
else:
self.__Str=""
def echo(self):
print self.__Str
def char(self):
return self.__Str
msg="OOPs the Great"
str1=string(msg)
print "str1 =",
str1.echo()
str2=string("It is nice to learn")
receive=str2.char()
print "Str2 =", receive
PI=3.141592654
class Radian:
__rad=float
def __init__(self, InitRad=0.0):
self.__rad=InitRad
def GetRadian(self):
return self.__rad
def Output(self):
print "Radian =", self.GetRadian()
class Degree:
__degree=float
def __init__(self):
self.__degree=0.0
def Radian(self):
return ( Radian(self.__degree * PI / 180.0))
def Input(self):
self.__degree=float(raw_input("Enter degree: "))
deg1=Degree()
deg1.Input()
rad1=deg1.Radian()
rad1.Output()
PI=3.141592654
class Degree:
__degree=float
def __init__(self):
self.__degree=0.0
def GetDegree(self):
return self.__degree
def Input(self):
self.__degree=float(raw_input("Enter degree: "))
class Radian:
__rad=float
def __init__(self, deg=None):
if isinstance(deg , Degree):
self.__rad=deg.GetDegree()*PI/180.0
else:
self.__rad=0.0
def GetRadian(self):
return self.__rad
def Output(self):
print "Radian =", self.GetRadian()
deg1=Degree()
deg1.Input()
rad1=Radian(deg1)
rad1.Output()
PI=3.141592654
class Radian:
__rad=float
def __init__(self, InitRad=0.0):
self.__rad=InitRad
def GetRadian(self):
return self.__rad
def Input(self):
self.__rad=float(raw_input("Enter radian: "))
def Output(self):
print "Radian =", self.GetRadian()
class Degree:
__degree=float
def __init__(self, rad=None):
if isinstance(rad, Radian):
self.__degree=rad.GetRadian()*180.0/PI
else:
self.__degree=0.0
def GetDegree(self):
return self.__degree
def Radian(self):
return ( Radian(self.__degree * PI / 180.0))
def Input(self):
self.__degree=float(raw_input("Enter degree: "))
def Output(self):
print "Degree =", self.__degree
deg1=Degree()
deg1.Input()
rad1=deg1.Radian()
rad1.Output()
rad2=Radian()
rad2.Input()
deg2=Degree(rad2)
deg2.Output()
from ctypes import Structure, c_int, c_char
class AccountEntry(Structure):
_fields_=[('number',c_int), ('name', c_char*25)]
class AccountBook:
__aCount=int
__account=[AccountEntry]
def __init__(self, aCountIn):
self.__aCount=aCountIn
for i in range(self.__aCount):
self.__account.append(AccountEntry())
def op(self, nameIn):
if isinstance(nameIn, str):
for i in range(self.__aCount):
if nameIn==self.__account[i].name:
return self.__account[i].number
elif isinstance(nameIn, int): #numberIn
for i in range(self.__aCount):
#print self.__account[i].number
if nameIn==self.__account[i].number:
return self.__account[i].name
def AccountEntry(self):
for i in range(self.__aCount):
self.__account[i].number=int(raw_input("Account Number: "))
self.__account[i].name=raw_input("Account Holder Name: ")
accounts=AccountBook(5)
print "Building 5 Customers Database"
accounts.AccountEntry()
print "Accessing Accounts Information"
accno=int(raw_input("To access Name Enter Account Number: "))
print "Name:",accounts.op(accno) #accounts[accno]
name=raw_input("To access Account Number, Enter Name: ")
print "Account Number:",accounts.op(name) #accounts[name]
def readdata(self):
self._Complex__real=float(raw_input("Real part ? "))
self._Complex__imag=float(raw_input("Imag part ? "))
def outdata(self, msg):
print "%s(%g, %g)" %(msg, self._Complex__real, self._Complex__imag)
class Complex:
__real=float
__imag=float
def __init__(self):
self.__real=self.__imag=0
readdata=readdata
outdata=outdata
def __neg__(self):
return neg(self)
#friend function overloading unary minus operator
def neg(c1):
c=Complex()
c._Complex__real=-c1._Complex__real
c._Complex__imag=-c1._Complex__imag
return c
c1=Complex()
c2=Complex()
print "Enter Complex Number c1..."
c1.readdata()
c2=-c1
c1.outdata("Complex c1 : ")
c2.outdata("Complex c2 = -Complex c1: ")
def readdata(self):
self._Complex__real=float(raw_input("Real part ? "))
self._Complex__imag=float(raw_input("Imag part ? "))
def outdata(self, msg):
print "%s(%g, %g)" %(msg, self._Complex__real, self._Complex__imag)
class Complex:
__real=float
__imag=float
def __init__(self):
self.__real=self.__imag=0
readdata=readdata
outdata=outdata
def __neg__(self):
return neg(self)
#friend function overloading unary minus operator
def neg(c1):
c1._Complex__real=-c1._Complex__real
c1._Complex__imag=-c1._Complex__imag
c1=Complex()
print "Enter Complex Number c1..."
c1.readdata()
-c1
c1.outdata("Complex c1 : ")
class Complex:
__real=float
__imag=float
def __init__(self, realpart=0):
if isinstance(realpart, float):
self.__real=realpart
self.__imag=0
def readdata(self):
self.__real=float(raw_input("Real part ? "))
self.__imag=float(raw_input("Imag part ? "))
def outdata(self, msg):
print "%s(%g, %g)" %(msg, self.__real, self.__imag)
def __add__(self, c2):
return add(self, c2)
#friend function overloading + operator
def add(c1, c2):
c=Complex()
c._Complex__real=c1._Complex__real+c2._Complex__real
c._Complex__imag=c1._Complex__imag+c2._Complex__imag
return c
c1=Complex()
c2=Complex()
c3=Complex(3)
print "Enter Complex Number c1..."
c1.readdata()
print "Enter Complex Number c2..."
c2.readdata()
c3=c1+c2
c3.outdata("Result of c3 = c1 + c2: ")
c3=c1+Complex(2.0)
c3.outdata("Result of c3 = c1 + 2.0: ")
c3=Complex(3.0)+c2
c3.outdata("Result of c3 = 3.0 + c2: ")
class Complex:
__real=float
__imag=float
def __init__(self, InReal=0):
if isinstance(InReal, float):
self.__real=InReal
self.__imag=0
def readdata(self):
self.__real=float(raw_input("Real part ? "))
self.__imag=float(raw_input("Imag part ? "))
def outdata(self, msg):
print "%s(%g, %g)" %(msg, self.__real, self.__imag)
def __add__(self, c2):
return add(self, c2)
#friend function overloading + operator
def add(c1, c2):
c=Complex()
c._Complex__real=c1._Complex__real+c2._Complex__real
c._Complex__imag=c1._Complex__imag+c2._Complex__imag
return c
c1=Complex()
c2=Complex()
c3=Complex(3)
print "Enter Complex Number c1..."
c1.readdata()
print "Enter Complex Number c2..."
c2.readdata()
c3=c1+c2
c3.outdata("Result of c3 = c1 + c2: ")
c3=c1+Complex(2.0)
c3.outdata("Result of c3 = c1 + 2.0: ")
c3=Complex(3.0)+c2
c3.outdata("Result of c3 = 3.0 + c2: ")
def __assign__(self, v2):
print "Assignment operation invoked"
for i in range(v2._vector__size):
self._vector__v[i]=v2._vector__v[i]
def show(self):
for i in range(self._vector__size):
print self.elem(i), ",",
class vector:
__v=[int]
__size=int
def __init__(self, vector_size):
if isinstance(vector_size, int):
self.__size=vector_size
self.__v=[int]*self.__size
if isinstance(vector_size, vector):
print "Copy constructor invoked"
self.__size=vector_size.__size
self.__v=[int]*self.__size
for i in range(vector_size.__size):
self.__v[i]=vector_size.__v[i]
def __del__(self):
del self.__v
__assign__=__assign__
def elem(self, i, x=None):
if isinstance(x, int):
if i>=self.__size:
print "Error: Out of Range"
self.__v[i]=x
else:
return self.__v[i]
show=show
v1=vector(5)
v2=vector(5)
for i in range(5):
v2.elem(i, i+1)
v1 = v2
v3 = vector(v2)
print "Vector v1:",
v1.show()
print "\nVector v2:",
v2.show()
print "\nVector v3:",
v3.show()
vector=[int]*10
buffer=[chr]*6
for i in range(10):
vector[i]=i+1
buffer="hello"
for i in range(10):
print vector[i],
print "\nbuffer =", buffer
del vector
class number:
__num=int
def read(self):
self.__num=int(raw_input())
def get(self):
return self.__num
def __add__(self, num2):
Sum=number()
Sum.__num=self.__num-num2.__num #subtraction instead of addition
return Sum
num1=number()
num2=number()
Sum=number()
print "Enter Number 1: ",
num1.read()
print "Enter Number 2: ",
num2.read()
Sum=num1+num2 #addition of two numbers
print "sum = num1 + num2 =", Sum.get()
def __add__(self, d2):
temp_date=date()
temp_date._date__sec=self._date__sec+d2._date__sec
if(temp_date._date__sec>=60):
temp_date._date__min+=1
temp_date._date__sec=temp_date._date__sec-60
temp_date._date__min=temp_date._date__min+self._date__min+d2._date__min
if(temp_date._date__min>=60):
temp_date._date__hr+=1
temp_date._date__min=temp_date._date__min-60
temp_date._date__hr=self._date__hr+d2._date__hr
return temp_date
class date:
__hr=int
__min=int
__sec=int
def __init__(self, h=0, m=0, s=0):
self.__hr=h
self.__min=m
self.__sec=s
def show(self):
print "%d hours, %d minutes, %d seconds" %(self.__hr, self.__min, self.__sec),
__add__=__add__
date1=date(2, 4, 56)
date2=date(10, 59, 11)
date3=date()
date3=date1+date2
date1.show()
print "+",
date2.show()
print "=",
date3.show()
def __add__(self, b2):
temp_basket=basket()
temp_basket._basket__apples=self._basket__apples+b2._basket__apples
temp_basket._basket__mangoes=self._basket__mangoes+b2._basket__mangoes
return temp_basket
class basket:
__apples=int
__mangoes=int
def __init__(self, a=0, m=0):
self.__apples=a
self.__mangoes=m
def show(self):
print self.__apples, " Apples and", self.__mangoes, " Mangoes"
__add__=__add__ # overloading + operator
basket1=basket(7, 10)
basket2=basket(4, 5)
basket3=basket()
print "Basket 1 contains:"
basket1.show()
print "Basket 2 contains:"
basket2.show()
basket3=basket1+basket2 #using overloaded + operator
print "Adding fruits from Basket 1 and Basket 2 results in:"
basket3.show()