"""
物件導向 三大特性
封裝 繼承 多型
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 語言的乙個主要功能就是 繼承 繼承是指這樣一種能力 它可以使用現有類的所有功能,並在無需...