Difference between revisions of "CSC111 Exercises on Classes and Objects"
(→Exercise 3) |
(→Exercise 4) |
||
Line 56: | Line 56: | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
+ | =Solution Put Together in Class= | ||
+ | <br /> | ||
+ | <source lang="python"> | ||
+ | class Bob: | ||
+ | def __init__( self ): | ||
+ | self._a = None | ||
+ | |||
+ | def setA( self, x ): | ||
+ | self._a = x | ||
+ | |||
+ | def getA( self ): | ||
+ | return self._a | ||
+ | |||
+ | def __str__( self ): | ||
+ | return "*** %d ***" % self._a | ||
+ | |||
+ | class Bobs: | ||
+ | def __init__( self ): | ||
+ | self._L = [] | ||
+ | |||
+ | def myAppend( self, bobObject ): | ||
+ | self._L.append( bobObject ) | ||
+ | |||
+ | def __str__( self ): | ||
+ | s = "Bobs List:\n" | ||
+ | for x in self._L: | ||
+ | s = s + x.__str__() + "\n" | ||
+ | return s | ||
+ | |||
+ | def main(): | ||
+ | |||
+ | L3 = Bobs() | ||
+ | for i in range( 1, 21 ): | ||
+ | z = Bob() | ||
+ | z.setA( i ) | ||
+ | L3.myAppend( z ) | ||
+ | |||
+ | print( L3 ) | ||
+ | |||
+ | def firstPart(): | ||
+ | # Exercise 1 | ||
+ | """ | ||
+ | x = Bob() | ||
+ | x.setA( 4 ) | ||
+ | print( x.getA() ) | ||
+ | #print( x ) | ||
+ | #x.setA( x.getA() + 10 ) | ||
+ | value = x.getA() | ||
+ | x.setA( value + 10 ) | ||
+ | |||
+ | print( x ) | ||
+ | """ | ||
+ | # Exercise 2 | ||
+ | """ | ||
+ | x = Bob() | ||
+ | x.a = 4 | ||
+ | print( x ) | ||
+ | x.a += 10 | ||
+ | #x.a = x.a + 10 | ||
+ | print( x ) | ||
+ | """ | ||
+ | |||
+ | # Exercise 3 | ||
+ | """ | ||
+ | x = Bob() | ||
+ | y = Bob() | ||
+ | x.setA( 45 ) | ||
+ | y.setA( 70 ) | ||
+ | L = [ x, y ] | ||
+ | |||
+ | for z in L: | ||
+ | print( z ) | ||
+ | |||
+ | x = None | ||
+ | y = None | ||
+ | |||
+ | #L[0].setA( 10 ) | ||
+ | #L[1].setA( 20 ) | ||
+ | z = L[0] | ||
+ | z.setA( 10 ) | ||
+ | z = L[1] | ||
+ | z.setA( 20 ) | ||
+ | """ | ||
+ | """ | ||
+ | L2 = [] | ||
+ | for i in range( 1, 21 ): | ||
+ | |||
+ | #print( "i=", i ) | ||
+ | z = Bob() | ||
+ | z.setA( i ) | ||
+ | L2.append( z ) | ||
+ | |||
+ | for z in L2: | ||
+ | print( "z = ", z ) | ||
+ | """ | ||
+ | main() | ||
+ | |||
+ | </source> | ||
<br /> | <br /> | ||
<br /> | <br /> |
Revision as of 12:19, 14 April 2014
--D. Thiebaut (talk) 13:05, 13 April 2014 (EDT)
Exercise 1
class Bob:
def __init__( self ):
self._a = None
def setA( self, x ):
self._a = x
def getA( self ):
return self._a
- Question 1
- Create an object of type Bob, call it x, and set its member variable to 4
- Question 2
- Add 10 to the member variable of x.
- Question 3
- print the object contents of Object x. First by getting _a from x and printing it, then by adding a new method to Bob so that we can print objects just by passing them to print()
Exercise 2
This exercise is very similar to Exercise 1, but the definition of self._a is now self.a. Answer the same 3 questions.
Exercise 3
Go back to Bob containing a private member variable.
- Question 1
- Create 2 objects of type Bob, each containing the values 45 and 70, respectively, and save them in a list called L. Verify that the list contains these 2 objects.
- Question 2
- Change the value of the first element of the list to 10, and the value of the second one to 20. Verify that the change was made.
- Question 3
- Create 20 objects of type Bob, each containing 1, 2, 3,... 20, respectively, and save them in a list called L2. Display the contents of the list.
- Question 4
- Reset the values in all 20 objects in L2 to 0. Verify that the reset operation was successful.
Exercise 4
This exercise is very similar to Exercise 3, but we construct a new class that contains a list of objects of type Bob. Answer the same questions as in Exercise 3.
Solution Put Together in Class
class Bob:
def __init__( self ):
self._a = None
def setA( self, x ):
self._a = x
def getA( self ):
return self._a
def __str__( self ):
return "*** %d ***" % self._a
class Bobs:
def __init__( self ):
self._L = []
def myAppend( self, bobObject ):
self._L.append( bobObject )
def __str__( self ):
s = "Bobs List:\n"
for x in self._L:
s = s + x.__str__() + "\n"
return s
def main():
L3 = Bobs()
for i in range( 1, 21 ):
z = Bob()
z.setA( i )
L3.myAppend( z )
print( L3 )
def firstPart():
# Exercise 1
"""
x = Bob()
x.setA( 4 )
print( x.getA() )
#print( x )
#x.setA( x.getA() + 10 )
value = x.getA()
x.setA( value + 10 )
print( x )
"""
# Exercise 2
"""
x = Bob()
x.a = 4
print( x )
x.a += 10
#x.a = x.a + 10
print( x )
"""
# Exercise 3
"""
x = Bob()
y = Bob()
x.setA( 45 )
y.setA( 70 )
L = [ x, y ]
for z in L:
print( z )
x = None
y = None
#L[0].setA( 10 )
#L[1].setA( 20 )
z = L[0]
z.setA( 10 )
z = L[1]
z.setA( 20 )
"""
"""
L2 = []
for i in range( 1, 21 ):
#print( "i=", i )
z = Bob()
z.setA( i )
L2.append( z )
for z in L2:
print( "z = ", z )
"""
main()