目錄
1. 定義類
2. 建立與使用物件(物件也稱為例項)
1)增加或刪除例項變數
2)增加例項方法
物件導向程式設計的三大特徵:封裝、繼承、多型;
語法格式:
# 語法格式:
class 類名:
執行語句...
類變數...
方法...
類名:乙個或者多個單詞連線而成,每個單詞首字母大寫,其餘字母全部小寫,單詞與單詞之間不使用分隔符;
類包含的類變數可以動態增加或刪除,程式在類定義中為新變數賦值就是增加類變數,程式可以在任何地方為已有的類增加變數,也可以通過del語句刪除已有類的類變數;
物件的變數也可以動態增加或刪除,只要對物件的新變數賦值就是增加變數,可通過del語句刪除已有物件的變數;
定義方法與定義函式相同,但類中的方法第乙個引數要定義為self,用於自動指向呼叫該方法的物件;
特殊的方法:__init__,這個方法叫做構造方法,用於構造該類的物件,python通過呼叫構造方法生成物件;如果開發者沒有定義構造方法,python會自動為該類定義乙個只包含self引數的預設的構造方法;
語法格式:
物件變數 = 類名()
# 本質是呼叫類裡面的構造方法建立物件
物件訪問方法或者變數的語法格式: 物件.變數|方法(引數)
class dog:
def __init__(self, ***="公", classification="二哈"):
# 為dog物件定義了兩個例項變數,self表示呼叫該函式的物件,self.變數就是例項變數
self.*** = ***
self.classification = classification
# 建立物件的本質是根據建構函式建立物件,所以引數值要與建構函式的引數相匹配
# 如果不傳入引數,因為有預設引數值,物件將按照預設引數值建立
# 如果沒有預設引數值,並且建立物件不傳入引數值,程式將出現錯誤
my_dog_1 = dog()
print(my_dog_1.***, my_dog_1.classification)
# 公 二哈
my_dog_2 = dog("母", "鬥牛犬")
print(my_dog_2.***, my_dog_2.classification)
# 母 鬥牛犬
增加例項變數:為新變數賦值即可;
刪除例項變數:del語句;
my_dog_2.name = "林林"
print(my_dog_2.name)
# 林林
del my_dog_2.***
print(my_dog_2.***)
# 程式錯誤:attributeerror: 'dog' object has no attribute '***'
!!!為物件動態增加的方法,python不會自動將第乙個引數self指向呼叫的物件;
# 先定義乙個函式
def feed_food(self, type):
if type=="breakfast":
print("1號型別**")
elif type=="lunch":
print("2號型別**")
else:
print("3號型別**")
# 使用函式feed_food對物件my_dog_2的方法food賦值
my_dog_2.food = feed_food
# 手動指定self引數為呼叫者
my_dog_2.food(my_dog_2, "lunch")
# 2號型別**
使用methodtype可以將動態增加的方法設定為自動將第乙個引數指向呼叫者:可以看到呼叫該方法時不需要指定第乙個引數為呼叫者了;
from types import methodtype
my_dog_2.food = methodtype(feed_food, my_dog_2)
my_dog_2.food("lunch")
# 2號型別**
當python物件的乙個方法呼叫其他方法時,不可以省略self;
class dog:
def __init__(self, ***="公", classification="二哈"):
# 為dog物件定義了三個例項變數
self.*** = ***
self.classification = classification
self.health = 1
def is_dog_healthy(self):
if self.health == 1:
return true
else:
return false
def feed_food(self, type):
# 該方法呼叫其他方法self不能省略
if self.is_dog_healthy()==false:
print("狗狗得病了需要吃好的")
elif type == "breakfast":
print("1號型別**")
elif type == "lunch" :
print("2號型別**")
else:
print("3號型別**")
(python物件導向基礎)定義類和建立物件
定義乙個類,格式如下 class 類名 方法列表 demo 定義乙個car類 定義類 class car 方法 defgetcarinfo self print 車輪子個數 d,顏色 s self.wheelnum,self.color defmove self print 車正在移動.說明 上面定...
java中類的定義與物件的建立
1.類的定義 修飾符 class 類名 public text1 int id,string name,string public void printname public static void main string args 上述 中,定義了乙個名叫text1的類,該類中有兩個構造方法。所謂...
類與物件的定義
舉個例子,在現實生活中 人 是乙個類,狗 也是乙個類,而 張三 是個人,所以是 人 類的物件。而 旺財 是乙隻狗,所以是 狗 類的物件 1.訪問修飾符如public private等是可以選的 2.class是宣告類的關鍵字 3.按照命名規範,類名首字母大寫 訪問修飾符 class 類名 舉例 pu...