Python:面向對象編程

面向對象編程 Ojbect-Oriented Programming

兩種編程思想:
面向過程編程
  	最小單位是: 函數 function
面向對象的編程:
  	最小單位是: 類 class

什麼是對象:
	對象是指現實中的物體或實體

什麼是面向對象
	把一切看成對象(實例) 用各種對象之間的關係來描述事物

對象都有什麼特徵:
	對象有很多的屬性(名詞,形容詞)
		姓名, 年齡, 性別, 頭髮顏色
	對象有很多行爲(動作,動詞)
		學習,吃飯,睡覺,踢球,工作

什麼是類
	擁有相同屬性和行爲的對象分爲一組,即爲一個類
	類是用來描述對象的工具,用類可以創建此類的對象(實例)

示意:
車(類)  ---->  BYD E6(京A.88888)  實例
     \
      \-->  BMW X5(京B.00000)  對象(實例)

狗(類) ----> 小京巴(戶籍號: 000001) 對象
    \
     \---> 導盲犬(戶籍號:00002)  對象

int(類)  -----> 100 對象
       \
        \---> 200 對象

類的創建語句:

語法:
	class 類名(繼承列表):
    	'''類的文檔字符串'''
    	實例方法(類內的函數method)定義
    	類變量
    	類方法(@classmethod)
    	靜態方法(@staticmethod) 
作用:
	創建一個類
	類用於描述對象的行爲和屬性
	類用於創建此類的一個或多個對象(實例)
說明:
	類名必須是標識符
	類名實質是變量,它綁定一個類

構造函數

格式:
	類名([傳參列表])
作用:
	創建這個類的實例對象,並返回此實例對象的引用關係

說明:
	對象(實例)可以調用類方法和實例方法
	對象(實例) 有自己的作用域和名字空間,可以爲該實例添加
	實例變量(也叫實例屬性)

實例方法(instance method)

定義格式:
	class 類名(繼承列表):
    	def 實例方法名(self, 參數1, 參數2, ...):
        	'''方法的文檔字符串'''
        	語句塊
作用:
	用於描述一個對象的行爲,讓此類型的全部對象都擁有相同
	的行爲
說明:
	實例方法的實質是函數,是定義在內類的函數
	實例方法至少有一個形參,第一個形參綁定調用此方法的實
	例,一般命名爲'self'
實例方法的調用語法:
	實例.實例方法名(調用傳參)
	或
	類名.實例方法名(實例, 調用傳參)

實例屬性 attribute (也叫實例變量)

每個實例可以用自己的變量來記錄每個對象自己的數據,這個
變量稱爲實例變量

使用語法:
	實例.屬性名

賦值規則:
	首次爲屬性賦值則創建此屬性
	再次爲屬性賦值則改變此屬性的綁定關係
作用:
	記錄每個對象自身的數據

刪除屬性:

del 語句
	del 對象.實例變量名

del 語句總結:
	1)  刪除變量         del a,b,c
	2)  刪除列表中的元素  del L[0], L[0:3]
	3)  刪除字典中的鍵    del d['name']
	4)  刪除屬性         del obj.name

初始化方法

作用:
	對新創建的對象添加屬性
語法格式:
	class 類名(繼承列表):
    	def __init__(self [,形參列表])
        	語句塊
	注:[]代表其中的內容可省略
說明:
	1. 初始化方法的名必須是 '__init__' 不可改變
	2. 初始化方法會在構造函數創建實例後自動調用,且將實
   		例自身通過第一個參數self傳入'__init__' 方法
	3. 構造函數的實參將通過__init__方法的參數列表傳
   		入到__init__方法中
	4. 初始化方法內如果需要return 返回,則必須返回None

析構方法

格式:
	class 類名(繼承列表):
    	def __del__(self):
        ....
作用:
	在此對象銷燬前釋放此對象所佔用的資源
說明:
	析構方法在對象被銷燬前被自動調用
	python語言建議不要在對象銷燬時做任何事情,因爲銷燬
		的時間難以確定

預置實例屬性
__dict__ 屬性
	__dict__屬性綁定一個存儲此實例自身變量的字典

示例:

    class Dog:
        pass
    dog1 = Dog()
    print(dog1.__dict__)  # {}
    dog1.color = "白色"
    print(dog1.__dict__)  # {'color': "白色"}

__class__ 屬性
__class__ 屬性綁定創建此實例的類

作用:
	可以藉助於此屬性來訪問創建此實例的類
  示例:
    class Dog:
       pass
    dog1 = Dog()
    print(dog1.__class__)
    dog2 = dog1.__class__()  #  Dog()

用於實例對象的函數:

isinstance(obj, class_or_tuple)  返回這個對象obj
  	是否是某個類的對象,或者某些類中一個類的對象.如果
  	是則返回True,否則返回False
type(obj)  返回對象的類型
示例:
   class Dog:
       pass
   dog1 = Dog()
   isinstance(dog1, Dog)  # True
   isinstance([1,2,3], Dog)  # False
   isinstance([1, 2, 3], (int, str))  # False
   isinstance([1, 2, 3], (int, str, list))#True
   type(dog1) is Dog  # True
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章