11物件導向 類與物件

2022-08-23 23:42:11 字數 4419 閱讀 6112

物件導向程式設計 ——object oriented programming簡寫oop

物件是物件導向程式設計的兩個核心概念

是對一群具有相同特徵或者行為的事物的乙個統稱,是抽象的。

中定義了什麼屬性和方法物件中就有什麼屬性和方法

class 類名:

def 方法1(self, 引數列表):

pass

def 方法2(self, 引數列表):

pass

注意:類名的 命名規則 要符合大駝峰命名法

當乙個類定義完成之後,要使用這個類來建立物件,語法格式如下:

物件變數 = 類名()
需求型別屬性行為人

姓名吃身高喝

體重玩分析

定義乙個人類person

定義三個方法eatdrinkplay

按照需求 —— 不需要定義屬性

class person():

""" 這是乙個人類 """

def eat(self):

print("吃東西")

def play(self):

print("玩遊戲")

def drink(self):

print("喝飲料")

tony = person()

tony.drink()

tony.eat()

tony.play()

引用概念的強調
在物件導向開發中,引用的概念是同樣適用的!

人除了行為之外,還應該有屬性,屬性可以通過類方法傳入:

class person():

def eat(self, name):

print("{}吃東西".format(name))

def drink(self):

print("{}喝飲料".format(name))

p = person()

p.eat()

p.drink()

class person():

def eat(self):

self.name = 'tom'

print("{}吃東西".format(self.name))

def drink(self):

print("{}喝飲料".format(self.name))

p = person()

p.eat()

p.drink()

當使用類名()建立物件時,會 自動 執行以下操作:

為物件在記憶體中 分配空間 —— 建立物件

為物件的屬性 設定初始值 —— 初始化方法(init)

這個 初始化方法 就是__init__方法,__init__是物件的內建方法

__init__方法是 專門 用來定義乙個類 具有哪些屬性的方法!

person中增加__init__方法,驗證該方法在建立物件時會被自動呼叫

class person:

"""這是乙個人類"""

def __init__(self):

print("初始化方法")

class person:

def __init__(self):

print("這是乙個初始化方法")

# 定義用 person 類建立的物件都有乙個 name 的屬性

self.name = "tom"

def eat(self):

print("%s 吃東西" % self.name)

# 使用類名()建立物件的時候,會自動呼叫初始化方法 __init__

tom = person()

tom.eat()

在開發中,如果希望在 建立物件的同時,就設定物件的屬性,可以對__init__方法進行 改造

把希望設定的屬性值,定義成__init__方法的引數

在方法內部使用self.屬性 = 形參接收外部傳遞的引數

在建立物件時,使用類名(屬性1, 屬性2...)呼叫

class person:

def __init__(self, name):

print("初始化方法 %s" % name)

self.name = name

...tom = person("tom")

...tony = person("tony")

...

由哪乙個物件呼叫的方法,方法內的self就是哪乙個物件的引用

改造**如下:

class person:

def __init__(name):

self.name = name

def eat(self):

print("{} 吃東西".format(self.name))

案例:使用之前定義的爬蟲類,完成抓取資料的功能(理清楚邏輯,不需要**實現)

定義乙個完成資料抓取的類方法(spider

在類方法中實現對資料的抓取、解析、儲存

實現整個抓取的流程

python中可以使用以下兩個方法驗證:

ipython中輸入物件之後輸入乙個.,然後按下tab鍵,ipython會提示該物件能夠呼叫的方法列表

使用內建函式dir傳入乙個物件,可以檢視物件內的所有屬性及方法

序號方法名

型別作用

01__new__

方法建立物件時,會被自動呼叫

02__init__

方法物件被初始化時,會被自動呼叫

03__del__

方法物件被從記憶體中銷毀前,會被自動呼叫

04__str__

方法返回物件的描述資訊

注意:__str__方法必須返回乙個字串

class person:

def __new__(cls, *args, **kwargs):

print("我正在被建立")

cls.__instance = super().__new__(cls)

return cls.__instance

def __init__(self, name):

self.name = name

print("%s 來了" % self.name)

def __del__(self):

print("%s 去了" % self.name)

def __str__(self):

return "我是:%s" % self.name

tom = person('tom')

print(tom)

物件導向 類與物件

物件導向是相對於面向過程而言的,具體的來說,比如 我們想要吃一頓午飯,我們親自買菜,洗菜.切菜,炒菜,煮飯,這樣做成一桌菜就叫面向過程,也就是說整個過程 你都親自完成,而 物件導向呢?點外賣 點一桌子菜和公尺飯 不管他咋做出來的 面向過程程式設計 就是 我們想要實現乙個功能 直接去呼叫別人寫好的功能...

物件導向(類與物件)

世界上肯定是先出現各種各樣的實際存在的物體,然後隨著人類文明的發展,人類站在不同的角度總結出了不同的種類,比如 人類 動物類 植物類等概念。也就說,物件是具體的存在,而類僅僅只是乙個概念,並不真實存在,比如你無法告訴我人類 具體指的是哪乙個人這與函式的使用是類似的 先定義函式,後呼叫函式,類也是一樣...

物件導向 類與物件

1.物件導向的三大特徵 1 封裝性 2 繼承性 3 多型性 物件導向最大的特徵 可以對現實生活進行抽象 2.基本概念 1 類 指共性的概念 2 物件 指的是乙個具體的,可以使用的事物。通俗來說,類就是產生物件的藍圖。物件的所有行為,一定要在類中進行完整的定義。類中的組成 屬性 方法 class 類名...