zoukankan      html  css  js  c++  java
  • 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<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"

    #多态。多重继承 略

  • 相关阅读:
    浪潮之巅阅读笔记
    人月神话阅读笔记3
    学习报告
    人月神话阅读笔记2
    学习报告
    第十一周学习总结
    软件杯项目——手写体识别
    第十周学习进度
    第九周学习进度
    《软件架构师的12项修炼》阅读笔记
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5203406.html
Copyright © 2011-2022 走看看