2.7 面向對象介紹 2.8 類的屬性 2.9 類的方法

2.7 面向對象介紹

面向對象是編程的一種方法java

數值就是數值對象,字符串就是字符串對象等等python

面向對象 C++,java,python等shell

面向過程 C ,shell等編程

類和對象:這是面向對象中的兩個重要概念

類:是對事物的抽象,好比人類、球類……數組

對象:是類的一個實例,好比足球、籃球……函數

實例說明

球類能夠對球的特徵和行爲進行抽象,而後能夠實例化一個真實的球實體出來code

面向對象的主要思想

封裝對象

繼承繼承

多態字符串

這種思想方便解決較爲複雜的項目,且維護起來比較容易

類定義

類把須要的變量和函數組合在一塊兒,這種包含被稱爲封裝

class A(object):

類的結構:

class 類名:

成員變量-屬性 成員函數-方法

>>> class People(object):
...     name = 'zx'
		def think(self):  \\定義的函數必須有self
			print 'thinking'
... 
>>> a = People()   \\實例化
>>> print people
<__main__.People object at 0x7fb9e3403c90>
>>> a.think()  \\調用think方法
thinking

2.8 類的屬性

類是由屬性和方法組成的,屬性能夠叫作成員屬性,方法能夠叫作成員方法

class People(object):
	name = 'zx'  \\屬性
	def think(self):  \\方法
		print 'thinking'

對象的建立

建立對象的過程曾稱之爲實例化;當一個對象被建立後,包含三個方面的特性:對象句柄,屬性和方法。

句柄用於區分不一樣的對象

對象的屬性和方法與類中的成員變量和成員函數對應

oji=MyClass() \建立類的一個實例(對象)經過對象來調用方法和屬性

類的屬性

類的屬性按使用範圍分爲公有屬性和私有屬性,類的屬性範圍取決於屬性的名稱。

公有屬性:在類中和類外都能調用的屬性

私有屬性:不能在類外以及被類之外的函數調用;定義方式, 已「__」雙下劃線開始的成員變量就是私有屬性;能夠經過instance.__classname__attribute方式訪問

內置屬性:有系統在定義類時默認添加的,右先後雙下劃線構成, _dic_, _module_

class ClassA(object):
	pub = 'pub'
	__pri = 'pri'
	def show(self):
		print self.pub
		print self.__pri
		
classa = ClassA
classa.pub = 'newpub' \\能夠在外部修改共有屬性

2.9 類的方法

方法的定義和函數同樣,可是須要self做爲第一個參數

類的方法有:公有方法、私有方法、類方法和靜態方法。

類方法:被classmethod()函數處理過的函數,能被類所調用,也能被對象所調用(是繼承的關係)

靜態方法:至關於「全局函數」,能夠被類直接調用,能夠被全部實例化對象共享,經過staticmethod()定義,注意靜態方法沒有self參數

class ClassA(object):
	pub = 'pub'
	__pri = 'pri'
	def show(self): \\公有方法
		print self.pub
		print self.__pri
	
	def new(self):
		self.think()  \\調用公有方法
	
	def __mypri(self): \\私有方法,不能在外部調用
		pass
classa = ClassA

類方法classmethod()

class ClassA(object):
	pub = 'pub'
	__pri = 'pri'
	def show(self): \\公有方法
		print self.pub
		print self.__pri
	test = classmethod(show)

classa = ClassA()
ClassA.test  \\直接調用show方法

靜態方法

class ClassA(object):
	pub = 'pub'
	__pri = 'pri'
	def show(): 
		print self.pub
		print self.__pri
	test = staticmethod(show)

classa = ClassA()
classa.test \\靜態方法調用不會傳參數
相關文章
相關標籤/搜索