Python学习笔记(七)——Python 类

来源:互联网 发布:js判断json是否存在 编辑:程序博客网 时间:2024/04/30 06:55

1、创建类

#-*- coding: utf-8 -*-#OO 抽象、封装、继承、多态#创建类class Person:    def setName(self,name):#self 代表对象自身        self.name=name            def getName(self):        return self.name        def greet(self):        print "hi,%s"%self.name
2、初始化类调用类方法

foo=Person()foo.setName('Max')print foo.getName()  #Maxfoo.greet() #hi,Max
3、类的私有、公有方法

#类的私有方法class Secret:    def _private(self):  #_表示私有        print "cant"            def public(self):        print "cat"o=Secret()  #如果在其他类中调用这个类?o.public()o._private()
4、类的继承

#超类class Filter:    def init(self):        self.blocked=[]        class SPAMFilter(Filter):  #SPAMFilter继承于Filter    def init(self):   #重写init方法        self.blocked=['SPAM']f=Filter()print f.init()s=SPAMFilter()print s.init()#判断两个类之间是否存在继承关系print issubclass(SPAMFilter,Filter)
5、多重继承

#多重继承class Calculator:    def calculate(self,expression):        self.value=eval(expression)        class Talker:    def talk(self):        print 'hi,value is',self.value#子类,同事继承两个父类        class TalkingCalculator(Calculator,Talker):    pass#调用tc=TalkingCalculator()tc.calculate('1+1')tc.talk() #hi,value is 2#注意如果Talker、Calculator两个超类中都有一个talk方法时,继承时要注意#先继承的类方法会重写后继承的方法。# class TalkingCalculator(Talker,Calculator):#     pass#如果是这个顺序,则Talker中的talk方法可用,而Calculator不可用#判断类中方法是否存在print hasattr(tc,'talk') #True#判断类中方法是否可调用print callable(getattr(tc,'talk',None)) #True



0 0
原创粉丝点击