什麼是物件?
物件導向(oop)
- 物件導向的程式語言
物件導向的程式設計思想,將所有的功能統一儲存到對應的物件中
比如,媽媽功能儲存到媽媽的物件中,孩子的功能儲存到孩子物件中
要使用某個功能,直接找到對應的物件即可
這種方式編寫的**,比較容易閱讀,並且比較易於維護,容易復用。
但是這種方式編寫,不太符合常規的思維,編寫起來稍微麻煩一點
簡單歸納一下,物件導向的思想
1.找物件
2.搞物件
a =
int(10)
# 建立乙個int類的例項
b =str
('hello'
)# 建立乙個str類的例項
print
(a ,
type
(a))
print
(b ,
type
(b))
定義乙個簡單的類
使用class關鍵字
來定義類,語法和函式很像!
class 類名([父類]):
**塊
class
myclass()
:pass
print
(myclass)
<
class
'__main__.myclass'
>
使用myclass建立乙個物件
使用類來建立物件,就像呼叫乙個函式一樣
mc = myclass(
)# mc就是通過myclass建立的物件,mc是myclass的`例項`
mc_2 = myclass(
)mc_3 = myclass(
)mc_4 = myclass(
)
mc mc_2 mc_3 mc_4 都是myclass的例項,他們都是一類物件
isinstance()
用來檢查乙個物件是否是乙個類的例項
現在我們通過myclass這個類建立的物件都是乙個空物件
也就是物件中實際上什麼都沒有,就相當於是乙個空的盒子
可以向物件中新增變數,物件中的變數稱為屬性
語法:物件.屬性名 = 屬性值
mc.name =
'孫悟空'
mc_2.name =
'豬八戒'
print
(mc_2.name)
使用類建立物件的流程(參考圖1)1.建立乙個變數
2.在記憶體中建立乙個新物件
3.將物件的id賦值給變數
一般情況下,屬性儲存到例項物件中
而方法需要儲存到類物件中
# 嘗試定義乙個表示人的類
class
person
:# 在類的**塊中,我們可以定義變數和函式
# 在類中我們所定義的變數,將會成為所有的例項的公共屬性
# 所有例項都可以訪問這些變數
name =
'swk'
# 公共屬性,所有例項都可以訪問
# 在類中也可以定義函式,類中的定義的函式,我們稱為方法
# 這些方法可以通過該類的所有例項來訪問
defsay_hello
(self)
:# 方法每次被呼叫時,解析器都會自動傳遞第乙個實參
# 第乙個引數,就是呼叫方法的物件本身,
# 如果是p1調的,則第乙個引數就是p1物件
# 如果是p2調的,則第乙個引數就是p2物件
# 一般我們都會將這個引數命名為self
# say_hello()這個方法,可以顯示如下格式的資料:
# 你好!我是 ***
# 在方法中不能直接訪問類中的屬性
print
('你好!我是 %s'
%self.name)
# 建立person的例項
p1 = person(
)p2 = person(
)# print(p2.name)
# 呼叫方法,物件.方法名()
# 方法呼叫和函式呼叫的區別
# 如果是函式呼叫,則呼叫時傳幾個引數,就會有幾個實參
# 但是如果是方法呼叫,預設傳遞乙個引數,所以方法中至少要定義乙個形參
# 修改p1的name屬性
p1.name =
'豬八戒'
p2.name =
'沙和尚'
p1.say_hello(
)# '你好!我是 豬八戒'
p2.say_hello(
)# '你好!我是 沙和尚'
# del p2.name # 刪除p2的name屬性
# print(p1.name)
# print(p2.name)
建立物件的流程p1 = person()的執行流程
1.建立乙個變數
2.在記憶體中建立乙個新物件
3.init(self)方法執行
4.將物件的id賦值給變數
class 類名([父類]) :
公共的屬性...
# 物件的初始化方法
def __init__(self,...):
...# 其他的方法
def method_1(self,...):
...def method_2(self,...):
......
- 練習:
嘗試自定義乙個表示狗的類(dog)
屬性:name
agegender
height
...方法:
jiao()
yao()
run()
...
Python物件導向的程式設計
1 使用類名後跟一對圓括號來建立乙個物件 例項。2 python中的self等價於c 中的this指標。3 init 方法類似於c 中的constructor。4 del 方法類似於c 中的destructor。5 域是屬於乙個物件或類的變數。域有兩種型別 例項變數 物件的變數 和類變數 類的變數 ...
Python 物件導向的程式設計
table of contents 物件導向程式設計 類和物件是物件導向程式設計的兩個主要方面。類 建立乙個新型別,而 物件 是這個類的 例項 類的物件可以使用屬於類的變數和函式,類的變數和函式有兩種 屬於每個例項 類的物件或屬於類本身。就像 c 的類的靜態變數和函式一樣。python 有乙個變數指...
物件導向的程式設計(python)
計算兩點間的距離 class point object def init self,x 0,y 0 self.x,self.y x,y defdistance to self,other dx self.x other.x dy self.y other.y return dx dx dy dy 0...