Python基礎學習六 物件,類屬性

2021-09-03 01:27:36 字數 2830 閱讀 2366

① 程式設計的方式:

面向過程:根據業務邏輯從上到下寫壘**

函式式:將某功能**封裝到函式中,日後便無須重複編寫,僅呼叫函式即可、

物件導向:對函式進行分類和封裝,讓開發「更快更好更強」

物件導向程式設計的兩個非常重要的概念:類和物件

類是物件的型別,具有相同屬性和行為事務的統稱。類是抽象的,在使用的時候通常會找到這個類的乙個具體存在。

② 定義類:

類(class):用來描述具有相同的屬性和方法的物件的集合,它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。

類的名稱:型別

屬性:物件的屬性

方法:物件的方法

③ 類的屬性分類

類屬性例項屬性

類變數:類變數在整個例項化的物件中是公用的,類變數定義在類中且在函式體外,類變數通常不作為例項變數使用,如果需要用在函式中使用:類名.類屬性

例項變數:定義在方法中的變數,只作用於當前例項的類。

_init_()是乙個特殊的方法屬於類的專有方法,被稱為類的建構函式或初始化方法,方法的前面和後面都有兩個下劃線。

這是為了避免python預設方法和普通方法發生名稱的衝突,每當建立類的例項化物件的時候,_init_()方法都會預設被執行,作用就是初始化已例項化後的物件

在方法定義中,第乙個引數self是比不可少的,類的方法和普通的函式的區別就是self,self並不是pyhon的關鍵字,完全可以用其他單詞取代,只是按照慣例和標準的規定,推薦使用self。

可以使用例項化物件名+.來訪問物件的屬性,亦可以使用一下函式的方式來訪問屬性

getattr(obj, name[, default]):訪問物件的屬性

hasattr(obj,name):檢查是否存在乙個屬性

setattr(obj,name,value):設定乙個屬性,如果屬性不存在,會建立乙個新屬性

delattr(obj,name):刪除屬性

注意:name需要加單引號,obj為例項化物件名稱

①__dict__:類的屬性(包含乙個字典,由類的屬性名:值組成)例項化類名._dict_

__doc__:類的文件字串 (類名.)例項化類名._doc_

__name__:類名,實現方式 類名.__name__,r如果是放在modules模組中,就表示模組的名字:如果是放在classs類中,就表示類的名字;

__bases__:類的所有父類構成元素(包含了乙個由所有父類組成的元組)

__main__:模組,***.py檔案本身被執行時,對應的模組名就是__main__了

②可以在if__name___ == "__main__"中新增你自己想要的,對於測試模組,演示模組用法等**。作為模組,被別的python程式匯入(import)時,模組名就是本身檔名***了。

方法重寫:如果從父類繼承的方法不能滿足子類的要求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。

例項變數:定義在方法中的變數,只作用於當前例項的類

"""

類定義class 類名():

# 類文件說明

屬性方法

"""class person():

"""這是乙個類

"""# 例項屬性通過構造方法來宣告

# self不是關鍵字,代表的是當前這個物件

country = '中國' # 宣告乙個國籍類

def __init__(self, name, age, ***): # 構造方法

# 構造方法不需要呼叫,在例項化的時候自動呼叫

print('我是構造方法,在例項化的時候呼叫')

self.name = name # 通過self 建立例項屬性,並且複製

self.age = age

self.*** = ***

# 建立普通方法

def getname(self):

print('我的名字叫: %s,我來自%s' % (self.name, person.country)) # 在方法中使用例項屬性

# 例項化物件

people01 = person('joe', 19, '男') # 在例項化的時候傳遞引數

這個people01 就要有三個屬性,並且可以使用getname方法

訪問屬性

print(people01.name)        # 通過物件名.屬性名 訪問例項屬性(物件屬性)

print(people01.age)

print(people01.***)

通過內建方法訪問屬性

print(getattr(people01, 'name'))

print(hasattr(people01, 'name'))

setattr(people01, 'name', 'susan')

print(people01.name)

delattr(people01, 'name')

print(people01.name)

通過物件呼叫例項方法

people01.getname()

""" 內建類屬性

"""print(people01.__dict__) # 會將例項物件的屬性和值通過字典的形式返回

# print(people01.__doc__)

print(person

.__name__) # 返回類名

print(person.__bases__)

PDF學習六 物件

說明 pdf支援8種基本型別物件。布林物件 數字物件 串物件 名稱物件 陣列物件 字典物件 流物件 空物件,以及間接物件。pdf reference1.7.pdf 3.2 objects 熟練掌握pdf8種基本型別物件。true false 整數物件 integer 以零為中心表示乙個特定間隔內的整...

PDF學習六 物件

本文 前言 pdf支援8種基本型別物件。布林物件 數字物件 串物件 名稱物件 陣列物件 字典物件 流物件 空物件和間接物件。pdf reference1.7.pdf 3.2 objects 熟練掌握pdf8種基本型別物件。true false 整數物件 integer 以零為中心表示乙個特定間隔內的...

Redis學習筆記(六) 物件

前面我們看了redis用到的主要資料結構,如簡單動態字串 sds 雙向鍊錶 字典 壓縮列表 整數集合等。但是redis並沒有直接使用這些資料結構來實現鍵值對,而是基於這些資料結構建立了乙個物件系統,這個系統包括字串物件 列表物件 雜湊物件 集合物件 有序集合物件,除此之外,redis的物件系統還實現...