python 類變數總結及區別

2021-10-05 10:01:55 字數 1510 閱讀 4850

在__init__和類函式中定義的self變數(成員變數)是一樣的,都可以供給所有類函式呼叫。

類函式中的區域性變數,沒有加self,不能供其他函式直接使用。

class

member()

: num =

0# 類變數,可以直接用類呼叫,或用例項物件呼叫

def__init__

(self, x, y)

: self.x = x # 例項變數(成員變數),需要它是在類的建構函式內以self.開頭來定義的

self.y = y

self.fuc(self.x, self.y)

defadd

(self)

: total =

2# 區域性變數

self.vara =

3# 雖是以self.給出,但並沒有在建構函式中進行初始化

self.varb =

4 fina =

(self.x + self.y)

* total

return self.vara

deffuc(self, a, b)

: self.varc = a # 成員變數,他們在成員函式fuc()中定義,但是在建構函式中呼叫了fuc()函式

self.vard = b #self 成員變數是可以互用的!!!

self.vara =

5return self.vara

在寫leetcode的時候發現,如果用了類變數,如果是字典的形式,那麼會有累積的效應;如果是成員變數則不會出現這個問題。

舉例如下:

class

solution

(object):

def__init__

(self)

: self.a =

defexample

(self, b)

: self.a[b]=5

return self.a

class

solution1

(object):

a =defexample

(self, b)

: self.a[b]=5

self.c =

1return self.a

s = solution(

)h = s.example(8)

print

(h)#

s = solution(

)h = s.example(9)

print

(h)#

s1 = solution1(

)h = s1.example(8)

print

(h)#

s = solution1(

)h = s.example(9)

print

(h)#

python類變數以及例項變數的區別

當前指令碼是為了驗證類變數以及例項變數的區別 class a object name 1 class b a pass class c a pass a.name 2 print a.name,b.name,c.name b.name b print a.name,b.name,c.name a.n...

python 變數命名規範及變數型別總結

一 變數的命名 1 第乙個字元必須是字母表中的字母 大寫或小寫 或者乙個下劃線 2 可以由字母 大寫或小寫 下劃線 或數字 0 9 組成。3 對大小寫敏感的。二 變數的型別 python 不包含像 int 這樣的簡單型別 只有物件型別,如果 python 中需要整數值,將整數賦值給相應變數 如i 1...

Python 獲取類的成員變數及臨時變數

利用python反射機制,從 塊中靜態獲取引數 co argcount 普通引數的總數,不包括引數和 引數。co names 所有的引數名 包括引數和 引數 和區域性變數名的元組。co varnames 所有的區域性變數名的元組。co filename 源 所在的檔名。co flags 這是乙個數值...