python3_07.面向對象

    面向對象程序設計的基本步驟:python

    一、根據功能、抽象業務對象。ide

    二、構建獨立的業務模塊,利用封裝、繼承、多態等抽象業務需求。函數

    三、編寫程序。測試

    四、以對象爲單位輸入參數、開展測試。spa

global關鍵字用來在函數或其餘局部做用域中使用全局變量。
>>> a = 10
>>> def foo():
...     a = 100
... 
>>> a
10
>>> foo()
>>> a
10
>>> def glo():
...     global a
...     a = 100
... 
>>> a
10
>>> glo()
>>> a
100
#類名一般是大寫開頭的單詞
#object表示從哪一個類繼承下來,一般,若是沒有合適的繼承類,就使用object類,這是全部類最終都會繼承的類。
class People(object):
#定義基本屬性
	name = ''
	age = 0
#定義私有屬性
#兩個下劃線開頭,聲明該屬性爲私有,不能在類地外部被使用或直接訪問。
	__weight =0
#定義構造方法
#__init__方法的第一個參數永遠是self,表示建立的實例自己,建立實例的時候,必須傳入與__init__方法匹配的參數,
	def __init__(self,n,a,w):
		self.name = n
		self.age = a
		self.__weight = w
#數據封裝,也就是定義函數,稱爲類的方法
	def speak(self):
		print("%s 說:我%d 歲。"%(self.name,self.age))
#類的繼承
#須要注意圓括號中父類的順序,如果父類中有相同的方法名,而在子類使用時未指定,python從左至右搜索 即方法在子類中未找到時,從左到右查找父類中是否包含方法。
#單繼承
class Student(People):
	grade = ''
	def __init__(self,n,a,w,g):
		People.__init__(self,n,a,w)
		self.grade = g
	def speak(self):
		print("%s 說:我 %d 歲 ,在讀%s 年級"%(self.name,self.age,self.grade))
#另外一個類,多重繼承以前的準備
class Speaker():
	topic = ''
	name = ''

        def __init__(self,n,t):
		self.name = n
		self.topic = t
	def speak(self):
		print("我叫%s ,我是一個演說家,個人主題是:%s"%(self.name,self.topic))
#多重繼承
class Sample(Student,Speaker):
	a = ''
	def __init__(self,n,a,w,g,t):
		Student.__init__(self,n,a,w,g)
		Speaker.__init__(self,n,t)

#建立實例
test = Sample("Tim",25,80,4,"python")
#調用實例的方法
#方法名同,默認調用的是在括號中排前地父類的方法
test.speak()

類的專有方法:設計

  • __init__ : 構造函數,在生成對象時調用對象

  • __del__ : 析構函數,釋放對象時使用繼承

  • __repr__ : 打印,轉換索引

  • __setitem__ : 按照索引賦值作用域

  • __getitem__: 按照索引獲取值

  • __len__: 得到長度

  • __cmp__: 比較運算

  • __call__: 函數調用

  • __add__: 加運算

  • __sub__: 減運算

  • __mul__: 乘運算

  • __div__: 除運算

  • __mod__: 求餘運算

  • __pow__: 稱方

相關文章
相關標籤/搜索