python小白 物件導向 成員介紹

2021-10-12 17:39:44 字數 3664 閱讀 9363

方法property等

字段分為兩種:普通字段靜態字段

普通字段,又叫例項屬性,在物件導向中屬於物件,在物件被建立時產生。也就是說,普通字段只能通過物件來訪問,不可通過類訪問

——**如下:

class

ziduan()

:#普通字段(例項屬性)

def__init__

(self)

:#通過物件建立普通字段

self.common_fields=

'我是普通字段'

#例項化

z=ziduan(

)print

(z.common_fields)

其中,因為普通字段屬於物件,所以在建立不同物件時,會自動建立不同的普通字段儲存在記憶體中。如果這些物件的該字段都彼此相同,此時建立普通欄位就會佔據不必要的記憶體。

靜態字段,屬於類,儲存在類中,可以通過物件或者通過類來訪問

——**如下:

class

ziduan()

:#靜態字段

#直接在類裡面建立

stastic_fields=

'我是靜態字段'

#例項化

z=ziduan(

)print

(z.stastic_fields)

#通過物件訪問

print

(ziduan.stastic_fields)

#通過類訪問

靜態字段屬於類,建立物件時不會建立新的物件。

普通方法又叫例項方法,儲存在類中,通過物件或類呼叫

——**如下:

class

method()

:#普通方法

defcm

(self)

:print

('我是普通方法'

)#例項化

m=method(

)m.cm(

)#通過物件訪問

method.cm(m)

#通過類呼叫

注意:普通方法儲存在類中,在建立物件時不會自動建立新的方法。

普通方法第乙個引數必須是該例項物件(預設self)

普通方法可以訪問類中的所有成員。

通過裝飾器@stasticmethod建立,儲存在類中,可以通過類、物件呼叫。

——**如下:

class

method()

:#靜態方法

@staticmethod

defstm()

:print

('我是靜態方法'

)#例項化

m=method(

)m.stm(

)#通過物件呼叫

method.stm(

)#通過類呼叫

靜態方法只能訪問類中的靜態成員,不能在繼承中修改。

通過裝飾器@classmethod建立,儲存在類中,通過類、物件呼叫。

——**如下:

class

method()

:#類方法

@classmethod

defcm1

(cls)

:print

('我是類方法'

)#例項化

m=method(

)m.cm1(

)#通過物件呼叫

method.cm1(

)#通過類呼叫

第乙個引數必須是類本身(預設cls)

其中cls代表類本身,類似於普通方法中的self。

用於以屬性的方式呼叫方法

(1)建立方法,只能訪問,不能賦值傳參。

——**如下:

class

method()

: @property

defcm1

(self)

:print

('property'

)m=method(

)m.cm1#訪問property

(2)property繫結,實現刪改查功能

——**示例如下:

class

method()

:def

__init__

(self)

: self.p=

0def

get_p

(self)

:print

(self.p)

defdelete_p

(self)

:del self.p

defset_p

(self,new)

: self.p=new

prop=

property

(fget=get_p,fdel=delete_p,fset=set_p)

#**m=method(

)m.prop#查,呼叫get_p()

m.prop=1#改

del m.prop#刪

用於通過屬性呼叫方法,傳參賦值

——**如下:

class

method()

: @property

#先通過property建立

deftest

(self)

:print

('property'

) @test.setter

deftest

(self, name)

: self.name = name

print

(self.name)

m=method(

)m.test=

20#賦值,呼叫@test.setter

用於通過屬性進行刪除

——測試**如下:

class

method()

: @property

#先通過property建立

deftest

(self)

:print

('property'

) @test.setter

deftest

(self, name)

: self.name = name

print

(self.name)

@test.deleter

deftest

(self)

:print

(self.name)

del self.name

try:print

(self.name)

except attributeerror:

print

('deleted'

)m=method(

)m.test=

20#賦值,觸發@test.setter

del m.test#del關鍵字觸發@test.deleter

C 小白 物件導向1

在c 中,類 class 是對c中的結構體struct的增強,也是用於自定義型別的。includeusing namespace std class object int main 訪問修飾符 public 公開的,可以被外部訪問 private 私有的,不可以被外部與訪問 protected 一般...

C 小白 物件導向2

include using namespace std class object int main 輸出結果為 include using namespace std int x 1 定義全域性變數x class object int main 3.當全域性函式與成員函式相同時,使用成員函式 inc...

C 小白 物件導向3

建構函式是類的一種特殊的函式 1 函式名與類名相同 2 沒有返回值 3 可以有形參也可以沒有 4 可以時內聯函式 5 可以過載 6 可以帶預設引數 作用 在物件被建立時使用特殊的值構造物件,將物件初始化為乙個特殊的狀態。建構函式一般不顯示呼叫,在建立乙個物件時,建構函式被自動呼叫。用編譯器完成 若程...