1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
class A :
def __init__( self, some_class, some_data ) :
self.the_class = some_class
self.the_data = some_data
def give_class(self) : return self.the_class
def give_data(self) : return self.the_data
class B :
def give_class(self) : return str
def give_data(self) : return 'hello world'
class C :
def do_something(self,x) :
print 'this is an object of class C'
print 'the data is: ', x
print 'and this is what i do with the data...'
class D :
def do_something(self,x) :
print 'this is an object of class D'
print 'the data is: ', x
print 'and i do something else...'
def a_function( obj ) :
cls = obj.give_class()
dat = obj.give_data()
inst = cls()
inst.do_something(dat)
def another_function( obj, x ) :
cls = obj.give_class()
a = cls(x)
b = obj.give_data()
print a, ' + ', b, ' == ', a+b
return a+b
def run() :
a1 = A( C, ( 1, 'abcd', {} ) )
a2 = A( D, [ i*3 + 1 for i in range(200,300) if i%17 == 0 ] )
a3 = A( int, 56 )
b = B()
a_function( a1 )
print '---------'
a_function( a2 )
print '---------'
print another_function( a3, 1234 ), '\n---------'
print another_function( b, 'I say: ' )
if __name__ == '__main__' :
run()
|