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

2022-09-18 19:39:08 字數 1000 閱讀 6416

利用python反射機制,從**塊中靜態獲取引數:

co_argcount: 普通引數的總數,不包括引數和*引數。

co_names: 所有的引數名(包括引數和*引數)和區域性變數名的元組。

co_varnames: 所有的區域性變數名的元組。

co_filename: 源**所在的檔名。

co_flags: 這是乙個數值,每乙個二進位制位都包含了特定資訊。較關注的是0b100(0x4)和0b1000(0x8),如果co_flags & 0b100 != 0,說明使用了*args引數;如果co_flags & 0b1000 != 0,說明使用了**kwargs引數。另外,如果co_flags & 0b100000(0x20) != 0,則說明這是乙個生成器函式(generator function)。

class

a:def

__init__

(self, a, b, c):

self.x = a

self.y = b

self.z = c

xx = 1

def__str__

(self):

co = self.__init__.func_code

co_names, co_varnames = 'co_names: ', 'co_varnames: '

co_names += ','.join(co.co_names)

co_varnames += ','.join(co.co_varnames)

return

''.join((co_names, '\n', co_varnames))

if'__main__' == __name__:

obj = a(1, 2, 3)

print str(obj)

結果:

co_names: x,y,z

co_varnames: self,a,b,c,xx

python的類變數和成員變數

先看看下面 python view plain copy class testclass object val1 100 def init self self val2 200def fcn self val 400 val3 300 self val4 val self val5 500if na...

Python類變數和成員變數

先上一段 class test x num 4 num 1 y 5 def init self,num self.num num defchange self,num test.num num test.x num 21 deftest self self.x 12 self.y 15 a test...

python類的成員 Python類成員

乙個是乙個類屬性,另乙個是乙個例項屬性。它們是不同的,但是它們之間的關係密切相關,使得它們在時間上看起來一樣。它與python查詢屬性的方式有關。有層次結構。在簡單的情況下,它可能如下所示 instance subclass superclass object built in type 當你在這樣...