python中的類,類變數,例項變數

2021-10-03 08:59:05 字數 522 閱讀 3091

這幾天寫**的時候碰到乙個python中的小問題,找了好半天才解決,所以記錄下來。

classa(

object):

def__init__

(self)

: self.x =

y =def__call__

(self)

:for i in

range(5

):print

('x:'

,self.x)

print

('y'

,y)

輸出的結果是

x:[5,5,5,5,5]

y:[5,5,5,5,5]

因為python中的list屬性進行的是淺拷貝,相當於傳入的是self.x的idx。

至於y是乙個類變數,也就是類函式裡面的區域性變數,self.x是例項變數,也就相當於類裡面的全域性變數。python只有在找不到例項變數的時候才去找類變數。而且類變數的作用範圍是所有例項,例項變數的作用範圍是全體物件。

python 類 例項 繼承中變數的id是否變化

注 估計這麼亂的 只有我自己能看。通過這段 的驗證,證明了在類和例項的相對關係中,把變數儲存為字串,數字,在各個類 例項之間變換的時候,變數的id是變化的,把變數儲存為列表和字典的時候,id位址是不變的。id位址變與不變用於確認是否是同乙份資料,看一下這個變數是否是全域性變數 class initp...

Python 類方法,例項方法,類變數,例項變數

建立乙個person類 class person object per v per v 建立乙個類變數 def init self,name,age 初始化類例項變數 self.name name self.age age definstance method self 建立類例項方法 print ...

python中類變數和例項變數 之例項變數

class test def f self,name self.name name def f1 self print self.name 例項變數為例項物件特有資料 x1 test 例項化test類,建立例項物件x1 x2 test 例項化test類,建立例項物件x2 設定例項屬性 方式1 x1....