Python笔记之面向对象
Python笔记之面向对象
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 #类属性
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"
#多态,多重继承 略
评论关闭