# create blank class print "creating empty class object" print class A(object): pass # create hypothetical constructor print "defining class constructor" print "will set instance attribute \"a\"" print def init(cls, a): print "initializing the instance" print cls.__setattr__("a",a) # create new method print """\ defining method \"show\" that takes one argument, \ a class. It then prints class variable \"a\" and \ instance variable \"b\" \ """ print def show(cls): print "received class", cls, "as first argument" print "class attribute \"b\"", cls.b print "instnace attribute \"a\":", cls.a print # add attribute to class print "adding class attribute b=10" print A.b = 10 # add constructor to class print "adding class constructor" print "will set instance attribute \"a\"" print A.__init__ = init # add method to class print "adding \"show\" method to class" print A.show = show # create instance print "creating instance \"q\" and passing \"5\" to constructor" print q = A(5) # check class attribute print "checking class attribute \"b\"" print "should equal 10" print q.b print # check instance attribute print "checking instance attribute \"a\"" print "should equal 5" print q.a print # test instance method print "testing method \"show\"" print q.show() # change class attribute print "now chaning class attribute \"b\" to 30" print A.b = 30 # check reference to class attribute print "checking that the class attribute changed" print q.show()