class AddrBookEntry(object): 'address book entry class' def __init__(self,nm,ph): self.name = nm self.phone = ph print 'created instance for:',self.name def updatephone(self,newph): self.phone = newph print 'update phone for:',self.name def updatename(self,newname): self.name = newname print 'update phone for:',self.phone john = AddrBookEntry('xiewenbin','13711710490') print john.name print john.phone john.updatephone('18617311540') john.updatename('xwb') print john.phone print john.name class EmpAddrBookEntry(AddrBookEntry): 'employee address book entry class' def __init__(self,nm,ph,id,em): AddrBookEntry.__init__(self,nm,ph) self.empid = id self.email = em def updateemail(self,newem): self.email = newem print 'update email address for:',self.name jone = EmpAddrBookEntry('jone doe','408-555-1212',42,'543361609@qq.com') print jone.name print jone.phone print jone.email jone.updatephone('18617311541') print jone.phone jone.updateemail('186@qq.com') print jone.email class HotelRoomCalc(object): 'hotel room rate calculator' def __init__(self,rt,sales=0.084,rm=0.1): '''hotelroot calc default arguments: sales tax == 8.5% and room tax == 10%''' self.salestax = sales self.roomtax = rm self.rootrate = rt def cacltotal(self,days=1): 'calculator total;default to daily rate' daily = round((self.rootrate * (1 + self.roomtax + self.salestax)),2) return float(days) * daily sfo = HotelRoomCalc(299) print sfo.cacltotal(3) class TestStaticMethod(object): @staticmethod def foo(): print 'calling static method foo()' class TestClassMethod(object): @classmethod def foo(cls): print 'calling class method foo()' print 'foo() is part of class:',cls.__name__ class C(object): foo = 100 print C.foo + 1 class Myclass(object): 'myclass class definition' myversion = 19.0 def showmyversion(self): print Myclass.myversion mc = Myclass() mc.showmyversion() print dir(Myclass) print Myclass.__dict__ """ class InstCt(object): count = 0 def __init__(self): InstCt.count += 1 def __del__(self): InstCt.count -= 1 def howmany(self): return InstCt.count a = InstCt() b = InstCt()""" x = 3 + 0.14j print x.__class__ print [type(getattr(x,i)) for i in ('conjugate','imag','real')] class Foo(object): x = {2003:'poe2'} foo = Foo() print foo.x foo.x[2004] = 'xie' print foo.x print Foo.x del foo.x print foo.x print Foo.x