class Super:
def __init__(self):
self.__IntegerData=None #private member
#public functions
def SetData(self,i):
self.__IntegerData=i #refer to IntegerData
def ShowData(self):
print "Data is ",self.__IntegerData,' '
ob1=Super()
ob2=Super()
ob1.SetData(1000)
ob2.SetData(2000)
ob1.ShowData()
ob2.ShowData()
class X:
def __init__(self):
self.a=None #private members
self.b=None #private members
#no structure type present in python
x = X()
x.a=0
x.b=1
print "x.a=",x.a,",x.b=",x.b
class Fraction:
def SetValue(self,a,b): #public functions
self.__num=a
self.__denom=b
def GetValue(self,a,b):
a=self.__num
b=self.__denom
f=Fraction()
n=input("Enter n: ") #user input
d=input("Enter d: ") #user input
print "enter the numerator and denominator: ", ' ',n,d
f.SetValue(n,d) #call function SetValue
print "Numerator value set: ", ' ',n
print "Denominator value set: ", ' ',d
f.GetValue(n,d) #call function GetData
print "Numerator value retrieved: ", ' ',n
print "Denominator value retrieved: ", ' ',d
class SimpleClass:
def __init__(self):
self.__i=None #private member
def __init__(self):
self.__i=500 #constructor
def SetData(self,d):
self.__i=d
def GetData(self):
return self.__i
#Initializing
s1=SimpleClass()
s2=SimpleClass()
print "s1 has data: ",s1.GetData()
print "s2 has data: ",s2.GetData()
s1.SetData(1000) #function call
s2.SetData(2000)
print "s1 has data: ",s1.GetData(),' '
print "s2 has data: ", s2.GetData(),' '
class SimpleClass:
__IntegerData=None
def __init__(self,data=None):
if data==None:
self.__IntegerData=500 #default constructor
else:
self.__IntegerData=data #parameterised constructor
def SetData(self,d):
self.__IntegerData=d
def GetData(self):
return self.__IntegerData
#Initializing
s1=SimpleClass()
s2=SimpleClass()
s3=SimpleClass(400)
s4=SimpleClass(600)
print "s1 has data: ",s1.GetData(),' '
print "s2 has data: ",s2.GetData(),' '
print "s3 has data: ",s3.GetData(),' '
print "s4 has data: ",s4.GetData(),' '
class Fraction:
def_init_num=None #private members
def_init_denom=None #private members
def __init__(self,a=0,b=1):
self.__num=a
self.__denom=b
print "Numerator set inside constructor",' ',n
print "Denominator set inside constructor",' ',d
def SetValue(self,a,b):
self.__num=a
self.__denom=b
def GetValue(self,a,b):
a= self.__num
b= self.__denom
return a,b
def __del__(self): #destructor
pass
n=input("Enter n: ") #user input
d=input("Enter d: ") #user input
print "Please enter value of numerator and denominator: ",' ',n,d
f=Fraction(n,d)
f.GetValue(n,d)
print "Numerator value retrieved: ", ' ',n
print "Denominator value retrieved: ", ' ',d
class Fraction:
def __init__(self,a=0,b=1): #constructor
self.__num=a
self.__denom=b
print "Numerator set inside constructor: ",self.__num
print "Denominator set inside constructor: ",self.__denom
def GetValue(self,a,b):
return self.__num,self.__denom
n=input("Enter n: ") #user input
d=input("Enter d: ") #user input
print "Please enter the value of the numerator and denominator: ",n,d
f=Fraction(n,d)
n,d=f.GetValue(n,d)
print "Numerator value retrieved: ", ' ',n
print "Denominator value retrieved: ", ' ',d
n=input("Please enter the value of numerator only: ")
f1=Fraction(n)
n,d=f1.GetValue(n,d)
print "Numerator value retrieved: ", ' ',n
print "Denominator value retrieved: ", ' ',d
print 'ok..now I will create a fraction-no input please'
f2=Fraction()
n,d=f2.GetValue(n,d)
print "Numerator value retrieved: ", ' ',n
print "Denominator value retrieved: ", ' ',d
class Fraction:
def_init_num=None #private members
def_init_denom=None #private members
def __init__(self,anotherFraction=None):
if anotherFraction==None: #normal constructor
self.__num=anotherFraction
self.__denom=anotherFraction
else: #copy constructor
self.__num=anotherFraction.self.__num
self.__denom=anotherFraction.self.__denom
#public functions
def SetValue(self,a,b):
self.__num=a
self.__denom=b#refer to IntegerData
def GetValue(self,a,b):
a=self.__num
b=self.__denom
return a,b
f=Fraction()
n=input("Enter n: ") #user input
d=input("Enter d: ") #user input
print "enter the numerator and denominator: ", ' ',n,d
f.SetValue(n,d) #call function SetValue
print "Numerator value set: ", ' ',n
print "Denominator value set: ", ' ',d
f.GetValue(n,d) #call function GetData
print "Numerator value retrieved: ", ' ',n
print "Denominator value retrieved: ", ' ',d
print "Now a second clone copy is being created: ",''
f1=f
f1.GetValue(n,d)
print "Clone's numerator value retrieved: ", ' ',n
print "Clone's denominator value retrieved: ", ' ',d
def MyNewHandler():
print "Sorry operator new failed to allocate memory"
exit(0)
def _set_new_handler(s):
s()
#In python there is no in-built _set_new_handler function, so i made this function and passed MyNewHandler function as a parameters
_set_new_handler(MyNewHandler)
from ctypes import c_int,pointer
class Fraction:
def __init__(self,a=0,b=1):
if isinstance(a,int):
c = c_int(a)
d = c_int(b)
self.__num = pointer(c)
self.__denom = pointer(d)
print 'constructor sets numerator = ', self.__num[0] , ', denominator = ', self.__denom[0]
else:
c=c_int(a.__num[0])
d = c_int(a.__denom[0])
self.__num = pointer(c)
self.__denom = pointer(d)
print 'copy constructor sets numerator = ', self.__num[0] , ', denominator = ', self.__denom[0]
def __del__(self):
print 'destructor deallocates numerator = ', self.__num[0] , ', denominator = ', self.__denom[0]
n = input("Please enter values of numerator: ")
d = input("Please enter values of denominator: ")
f = Fraction(n,d)
print 'Please enter another set of '
n = input("numerator: ")
d = input("denominator: ")
print 'Creating fraction *pf : '
pf = Fraction(n,d)
print 'Now a clone copy (f2) created from *pf: '
f2 = Fraction(pf)
print 'Now another clone copy (*pf2) created from f:'
pf2 = Fraction(f)
print '*pf2 is being destroyed:'
del pf2
print '*pf is being destroyed:'
del pf
print 'now objects f2 and f automatically destroyed : '
def Memfail(self,s):
print "Sorry Unable to allocate memory"
sys.exit(0)
MAX_SIZE = 60 + 1
MAX_SIZE=[[0 for col in range(MAX_SIZE)]for row in range(MAX_SIZE)]
nChar=0
chArr="Hello"
print "Please input a string( 60 characters max.): ",chArr
nChar=len(chArr)+1
szStr=chArr
print "required memory space for",nChar,
print "characters"
chArr=szStr #string copy
szStr=chArr
print "String copied in allocated space: ",szStr
print "Memory space dellocated"
class Fraction:
def __init__(self,a=0,b=1): #constructor
self.__num=a
self.__denom=b
def __del__(self): #destructor
pass
def GetValue(self,a,b):
a=self.__num
b=self.__denom
return self.__num,self.__denom
n=4
d=5
f=Fraction(4,5)
n,d=f.GetValue(n,d)
class X:
__sa=20 #initialising static member
a = None
def __init__(self):
self.a=None #public member
def f(self,b):
a=30
print "Global a= ",b
print "Local a= ",a
print "Nonstatic member a= ",self.a
print "static member sa= ",self.__sa
a=10
aXobj=X()
aXobj.a=40
aXobj.f(a)