Python面向对象示例代码

#encoding:utf-8

'''example 1
class 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.args



a = test(2014,a=123,b=321)

a.kaka()
a.deal_arg()
'''

'''example 2
class 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 rewriting
class 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.arg

class 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 '*'*10
b.ParentsMethond()
c.ParentsMethond()
print '*'*10
c.Parenttest(3899)
'''

'''example 4 Operator overloading
class 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 class
class JustCounter(object):
    """docstring for JustCounter"""
    __secretCount = 0 #私有变量
    publicCount = 0 #公开变量

    def count(self):
        self.__secretCount +=1
        self.publicCount +=1
        print self.__secretCount

counter = JustCounter()
counter.count()
counter.count()
counter.count()
counter.count()
counter.count()
print counter.publicCount
print counter.__secretCount #报错,实例不能访问私有变量
print counter._JustCounter__secreCount
'''
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值