class Counter:
__value=int
def __init__(self, val=None):#constructor
if(isinstance(val, int)):
self.__value=val
else:
self.__value=0
def __del__(self):#destructor
print "object destroyed"
def GetCounter(self):
return self.__value
def up(self):
self.__value=self.__value+1
counter1=Counter()
counter2=Counter(1)
print "counter1 = ", counter1.GetCounter()
print "counter2 = ", counter2.GetCounter()
counter1.up()
counter2.up()
print "counter1 = ", counter1.GetCounter()
print "counter2 = ", counter2.GetCounter()
def setdata(self, roll_no_in, name_in): #outside declaration of member functions
self._student__roll_no=roll_no_in
self._student__name=name_in
def outdata(self):#outside declaration of member functions
print "Roll no = ", self._student__roll_no
print "Name = ", self._student__name
class student:
__roll_no=int
__name=[None]*20
setdata=setdata
outdata=outdata
s1=student()
s2=student()
s1.setdata(1, "Tejaswi")
s2.setdata(10, "Rajkumar")
print "Student details..."
s1.outdata()
s2.outdata()
class counter:
__value=int
def __init__(self, val=0):
self.__value=val
def GetCounter(self):
return self.__value
def up(self):
self.__value+=1
class NewCounter(counter): #inheritance
def __init__(self, val=None) :
if(isinstance(val, int)):
counter.__init__(self, val)
else:
counter.__init__(self)
def down(self):
self._counter__value=self._counter__value-1
counter1=NewCounter()
counter2=NewCounter(1)
print "counter1 initially =", counter1.GetCounter()
print "counter2 initially =", counter2.GetCounter()
counter1.up()
counter2.up()
print "counter1 on increment =", counter1.GetCounter()
print "counter2 on increment =", counter2.GetCounter()
counter1.down()
counter2.down()
print "counter1 on decrement =", counter1.GetCounter()
print "counter2 on decrement =", counter2.GetCounter()
class counter:
__value=int
def __init__(self, val=0):
self.__value=val
def GetCounter(self):
return self.__value
#overloading increment operator
def __iadd__(self, val):
self.__value+=val
return self
#overloading decrement operator
def __isub__(self, val):
self._counter__value-=val
return self
counter1=counter()
counter2=counter(1)
print "counter1 initially =", counter1.GetCounter()
print "counter2 initially =", counter2.GetCounter()
counter1+=1
counter2+=1
print "counter1 on increment =", counter1.GetCounter()
print "counter2 on increment =", counter2.GetCounter()
counter1-=1
counter2-=1
print "counter1 on decrement =", counter1.GetCounter()
print "counter2 on decrement =", counter2.GetCounter()
class counter:
__value=int
def __init__(self, val=0):
self.__value=val
def GetCounter(self):
return self.__value
def __iadd__(self, val):
self.__value+=val
return self
def __isub__(self, val):
self._counter__value-=val
return self
#overloading of + operator
def __add__(self, counter2):
temp=counter()
temp.__value=self.__value+counter2.__value
return temp
#No overloading of << and >> operators in python
def output(self):
return self.__value
counter1=counter()
counter2=counter(1)
print "counter1 initially =", counter1.GetCounter()
print "counter2 initially =", counter2.GetCounter()
counter1+=1
counter2+=1
print "counter1 on increment =", counter1.GetCounter()
print "counter2 on increment =", counter2.GetCounter()
counter1-=1
counter2-=1
print "counter1 on decrement =", counter1.GetCounter()
print "counter2 on decrement =", counter2.GetCounter()
counter3=counter()
counter3=counter1+counter2
print "counter3 = counter1+counter2 =", counter3.output()
class Father:
__f_age=int
def __init__(self, n):
self.__f_age=n
def GetAge(self):
return self.__f_age
class Son(Father):
__s_age=int
def __init__(self, n, m):
Father.__init__(self, n)
self.__s_age=m
def GetAge(self):
return self.__s_age
basep=[Father]
basep=Father(45)
print "Father's Age:",
print basep.GetAge()
del basep
basep=[Son(45, 20)]
print "Son's Age:",
print basep[0].GetAge()
del basep
class vector:
__size=int
def __init__(self, vector_size):
self.__size=vector_size
self.__v=[vector]*self.__size
def __del__(self):
del self.__v
def elem(self, i, x=None):
if isinstance(x, int) or isinstance(x, float):
if i>=self.__size:
print "Error: Out of Range"
return
self.__v[i]=x
else:
return self.__v[i]
def show(self):
for i in range(self.__size):
print self.elem(i), ",",
int_vect=vector(5)
float_vect=vector(4)
for i in range(5):
int_vect.elem(i, i+1)
for i in range(4):
float_vect.elem(i,i+1.5)
print "Integer Vector:",
int_vect.show()
print "\nFloating Vector:",
float_vect.show()
class number:
__num=int
def read(self):
self.__num=int(raw_input())
class DIVIDE():
pass
def div(self, num2):
if num2.__num==0:
raise self.DIVIDE() #raise exception of type DIVIDE()
else:
return self.__num/num2.__num
num1=number()
num2=number()
print "Enter Number 1: ",
num1.read()
print "Enter Number 2: ",
num2.read()
try:
print "trying division operation...",
result=num1.div(num2)
print "succeeded"
except number.DIVIDE: #exception handler of exception type DIVIDE()
print "failed"
print "Exception: Divide-By-Zero"
else: #this block is executed only if no exception has been raised
print "num1/num2 =", result
try:
infile=open("sample.in", "r") #open file in input mode
while(1):
buff=infile.readline() #read a single line from the file
if buff=='': #to determine end of file
break
print buff,
except IOError: #error in opening file
print "Error: sample.in non-existent"
outfile=open("sample.out", "w") #file opened in output mode
if not(outfile):
print "Error: sample.out unable to open"
else:
while(1):
buff=raw_input()
if buff=="end":
break
outfile.write(buff)
outfile.close()
count=0
file1=open("FILE1.txt", "r") #file opened in input mode
file2=open("FILE2.txt", "w") #file opened in output mode
while(1):
ch=file1.read(1)
if ch=='': #detecting eof
break
if count%2==0:
file2.write(ch)
count+=1
print "Alternate characters from File1 have been successfully copied into File2"