1,类和对象
#create a class class fruit: def say(self): print "hello, python" if __name__ == "__main__": f = fruit() #不同于Java,不用new f.say()
2,属性和方法
#create a class class fruit: price = 0<span style="white-space:pre"> </span>#类属性 def __init__(self): self.color = "red" zone = "china" # def getColor(self): print self.color @ staticmethod #covert ordinary method to static method def getPrice(): print fruit.price def say(self): print "hello, python" if __name__ == "__main__": f = fruit() f.say() apple = fruit() apple.getColor()
构造函数,__init__()方法,可选,不提供有默认的
析构函数用语释放对象占用的资源,__del__()
垃圾回收机制,Python采用引用计数方式。
gc.collect() #显式调用垃圾回收器
3,继承
class Fruit: def __init__(self, color): self.color = color print "fruit's color is %s" % self.color def sayname(self): print "Fruit name" class Apple(Fruit): def __init(self, color): Fruit.__init__(self, color) print "Apple's color is %s" % self.color def sayname(self): print "My name is Apple" class Banana(Fruit): def __init__(self, color): Fruit.__init__(self, color) print "Banana's color is %s" % self.color def sayname(self): print "My name is banana" if __name__ == "__main__": apple = Apple("red") apple.sayname() banana = Banana("yelloe") banana.sayname()
#抽象类模拟
def abstract(): raise NotImplementError(“abstract”) class Fruit: def __init__(self): if self.__class__ is Fruit: abstract() print “Fruit” class Apple(Fruit): def __init(self): Fruit.__init__(self) print "Apple" def sayname(self): print "My name is Apple"
#多态,多重继承 略
时间: 2024-09-29 23:30:47