Python笔记之面向对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"

#多态。多重继承 略

以上是关于Python笔记之面向对象的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记之——python面向对象

学习廖雪峰Python3教程之面向对象小笔记

python学习笔记之面向对象编程特性

python笔记 - day7-1 之面向对象编程

python学习笔记之面向对象类以及I/O操作

Python面向对象学习之八,装饰器