Python面向对象示例代码

来源:互联网 发布:手机淘宝的店铺公告 编辑:程序博客网 时间:2024/05/29 16:38
#encoding:utf-8'''example 1class test:    def __init__(self,year,**arg):        self.year = year        self.args = arg    def kaka(self):        if isinstance(self.year,str):            print 'input\'s year is a string! Error'        elif isinstance(self.year,int):            a = self.year%4            print a        else:            print 'Error!'    def deal_arg(self):        # for v in self.args:        #   print '\n====================\n',v        for k in self.args:            print str(k)+'\tvalue is '+str(self.args[k])        print self.argsa = test(2014,a=123,b=321)a.kaka()a.deal_arg()''''''example 2class test:     '这是一个测试的基类'    def __init__(self,test):        self.test = test    '这是一个测试的基类'print 'test.__doc__:',test.__doc__print 'test.__name__:',test.__name__print 'test.__module__:',test.__main__print 'test.__bases__:',test.__bases__print 'test.__dict__:',test.__dict__''''''example 3  Class inheritance and method partial rewritingclass parent:    def __init__(self):        print '这是一个父类'    def ParentsMethond(self):        print '这是一个父类方法'    def Parenttest(self,arg):        self.arg = 'This is  a test!'        print '父类的self变量: %s' %self.arg        parent.arg = arg        print '父类的变量: %s' %parent.argclass child(parent):    """docstring for child"""    def __init__(self):        print '这是一个子类'    def ChildMethod(self):        print '调用子类方法 child method'    def ParentsMethond(self):        print '父类方法重写!!!!!!!!!!!!!!!!!!!!'b= parent()c = child()c.ChildMethod()print '*'*10b.ParentsMethond()c.ParentsMethond()print '*'*10c.Parenttest(3899)''''''example 4 Operator overloadingclass test:    def __init__(self,a,b):        self.a = a        self.b = b    def __str__(self):        return 'Vector (%d,%d)' % (self.a,self.b)    def __add__(self,other):        return test(self.a+other.a,self.b+other.b)v1 = test(21,22)v2 = test(2,3)print v1 + v2''''''#example 5 private classclass JustCounter(object):    """docstring for JustCounter"""    __secretCount = 0 #私有变量    publicCount = 0 #公开变量    def count(self):        self.__secretCount +=1        self.publicCount +=1        print self.__secretCountcounter = JustCounter()counter.count()counter.count()counter.count()counter.count()counter.count()print counter.publicCountprint counter.__secretCount #报错,实例不能访问私有变量print counter._JustCounter__secreCount'''
0 0