python之物件導向知識點總結

2021-08-07 20:23:03 字數 2237 閱讀 8982

"""

物件導向 三大特性

封裝 繼承 多型

python 本身是一種弱型別語言,本身就支援多型

繼承:多重繼承 執行某個方法

尋找方法的規律: 從下往上 從左往右

始終記得self物件代表的是誰,那個物件呼叫的方法,self酒代表的是誰

通過super(類,self).__init()可以呼叫父類的構造方法

還可以通過類名.__init__(self)方法也可以呼叫父類的建構函式 但不推薦使用

物件導向的成員 以及 修飾符

同樣也可以通過反射機制來訪問類或者物件的屬性和方法

module_str = input("請輸入匯入的模組名:")

modu = __import__(module_str)

cls = input("請輸入型別名:")

if hasattr(modu,cls):

c = getattr(modu,cls)

obj = c()

fun_str = input("請輸入要呼叫的函式:")

if hasattr(obj,fun_str):

fun = getattr(obj,fun_str)

fun();

attr_str = input("請輸入要檢視的屬性:")

if hasattr(obj,attr_str):

attr = getattr(obj,attr_str)

print(attr)

#################tesy.py############

class a:

def __init__(self):

self.name = "ylk"

print("aaaaaa")

def show(self):

print("bbbb")

類的靜態成員與方法

注意python與其他語言的差異,並沒有單獨宣告類裡面的成員

因此直接將成員寫在類裡面就表示是類的靜態成員

而類的靜態方法是通過裝飾器去完成的

@staticmethod即可表示是類的靜態方法,通過呼叫的是python的內建函式staticmethod()

也可以通過時候帶self引數來區分,只有非靜態方法才需要類的例項

訪問時,既可以通過類也可以通過物件去訪問,但不推薦 ,在訪問是最好通過類去訪問

物件導向之類方法

python不同於其他語言,其中還包含類方法,通過裝飾器@classmethod實質上呼叫python內建函式

classmethod()函式實現

將乙個方法宣告為類方法的時候,至少有乙個引數cls

@classmethod

def f(cls):

print(cls)

通過類呼叫類方法時,自動會將類的名稱傳入

@property

將類的方法的訪問方式變為與類的成的成員變數的訪問方式一樣

class a:

@property

def fun_name(self):

...@fun_naem.setter

def fun_name(self,value):

print(value)

obj = a()

obj.fun_name 直接呼叫fun_naem方法

obj.name = 123

通過@property將方法變為成員變數的訪問方式

通過@fun_name.setter用來修改@property裝飾的函式

python不同於其他語言訪問控制只分為私有和公有的

私有的只能在類的內部進行訪問 公有的都可以訪問

python是通過__兩下劃線來進行區別公有和私有的,並沒有public和private關鍵字

__call__(self,*arg,**kwargs)在生成物件後加上()呼叫的是該方法

物件[""]呼叫的是__getitem__(self,item)

物件[""] = value 呼叫的是__setitem__(self,key,value)

del 物件[""]呼叫的是__delitem__(self,item)

在python3.x版本中切片操作也是執行的這幾個函式

傳遞引數的時,先將切片的內容傳遞給slice物件,然後傳遞的是slice物件

__dict__列出類與物件的所有成員

__str__對物件進行輸出時,輸出的時該方法的返回值

"""

Python知識點 物件導向程式設計

物件導向程式設計是一種程式設計正規化,把程式看作不同物件的相互呼叫,對現實世界建立物件模型。定義乙個person類如下 class person object pass格式為 class 類名 object object表示定義的類是由那個類繼承下來的 函式體pass類名一般以大寫開頭。建立例項使用...

Python知識點 物件導向的認識

getattr obj,name default 訪問物件的屬性。hasattr obj,name 檢查是否存在乙個屬性。setattr obj,name,value 設定乙個屬性。如果屬性不存在,會建立乙個新屬性。delattr obj,name 刪除屬性。析構函式del,del 在物件銷毀的時候...

物件導向知識點總結

1 物件導向的特徵 物件導向的三個基本特徵是 封裝 繼承 多型。封裝 也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。繼承 物件導向程式設計 oop 語言的乙個主要功能就是 繼承 繼承是指這樣一種能力 它可以使用現有類的所有功能,並在無需...