python學習高階篇 part1 類屬性

2021-10-12 10:16:46 字數 1875 閱讀 9892

學習筆記,僅供參考,有錯必糾

學習資源:**python

類屬性指的是類物件所繫結的屬性。

繫結類屬性(給類物件繫結屬性)的方式有兩種:

在類物件的外部

訪問類屬性的方式有兩種:

在類物件的外部

舉個例子

**:

class

myclass

(object):

ca1 =

18def

do_sth

(self)

:print

(myclass.ca1)

defdo_another

(self)

:print

(myclass.ca2)

mc = myclass(

)mc.do_sth(

)print

(myclass.ca1)

print

(mc.ca1)

myclass.ca2 =

56print

(myclass.ca2)

print

(mc.ca2)

myclass.ca2 =

73print

(myclass.ca2)

print

(mc.ca2)

mc.do_another(

)

輸出:

18

1818

5656

7373

73

訪問例項屬性類屬性都可以通過例項物件.屬性名的方式。

當通過例項物件.屬性名的方式訪問屬性時,會先查詢指定的例項物件中有沒有指定名稱的例項屬性,如果沒有,再查詢對應的類物件中有沒有指定名稱的類屬性。

所以,當通過例項物件.屬性名的方式訪問屬性時,如果例項屬性和類屬性同名,例項屬性會遮蔽掉類屬性。

當通過例項物件.屬性名 = 屬性值的方式繫結屬性時,這裡的屬性只表示例項屬性(因為類屬性沒有這樣的繫結方式),所以,只會查詢指定的例項物件有沒有繫結指定名稱的例項屬性,如果沒有則進行繫結,如果已經繫結了,則對屬性值進行修改。

舉個例子

**:

class

person

(object):

age =

18p = person(

)print

(p.age)

print

(person.age)

p.age =

19print

(p.age)

print

(person.age)

del p.age

print

(p.age)

p1 = person(

)p2 = person(

)p1.age +=

2print

(person.age)

print

(p1.age)

print

(p2.age)

person.age +=

3print

(person.age)

print

(p1.age)

print

(p2.age)

結果:

18

1819

1818

1820

1821

2021

Python學習之Part16 裝飾器高階

應用場景 在使用裝飾器對原函式進行裝飾後,可以控制裝飾器什麼生效,什麼時候不生效 即在想使用原函式時,不需要對語法糖進行注釋,或者刪除裝飾器 以下使用乙個例子進行說明 import time 定義flag標誌位,當為真的時候,裝飾器生效,否則裝飾器不生效 falg false deftimmer o...

python練習 高階篇)

1 求1 2 3 4 5 99的和 count 1 s1 0 s2 0 while count 100 if count 2 0 s1 count else s2 count count 1 s s1 s2 print s 2 用python編寫程式,輸入一年份,判斷該年份是否是閏年並輸出結果 注 ...

Lua學習高階篇

之前已經說了很多,我目前的觀點還是那樣,在嵌入式指令碼中,lua是最優秀 最高效的,如果您有不同的觀點,歡迎指正並討論,切勿吐槽。這個系列完全來自於 programming in lua 您可以將其視為本人的讀書筆記。相比而言,如果您已經掌握了lua,但仍然不是非常熟練,請相信這個系列一定會給您的查...