溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

對(duì)Python 獲取類的成員變量及臨時(shí)變量的方法詳解

發(fā)布時(shí)間:2020-08-27 14:11:03 來(lái)源:腳本之家 閱讀:179 作者:王珂的個(gè)人筆記 欄目:開發(fā)技術(shù)

利用Python反射機(jī)制,從代碼塊中靜態(tài)獲取參數(shù):

co_argcount: 普通參數(shù)的總數(shù),不包括參數(shù)和*參數(shù)。

co_names: 所有的參數(shù)名(包括參數(shù)和*參數(shù))和局部變量名的元組。

co_varnames: 所有的局部變量名的元組。

co_filename: 源代碼所在的文件名。

co_flags: 這是一個(gè)數(shù)值,每一個(gè)二進(jìn)制位都包含了特定信息。較關(guān)注的是0b100(0x4)和0b1000(0x8),如果co_flags & 0b100 != 0,說(shuō)明使用了*args參數(shù);如果co_flags & 0b1000 != 0,說(shuō)明使用了**kwargs參數(shù)。另外,如果co_flags & 0b100000(0x20) != 0,則說(shuō)明這是一個(gè)生成器函數(shù)(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)

結(jié)果:

co_names: x,y,z
co_varnames: self,a,b,c,xx

以上這篇對(duì)Python 獲取類的成員變量及臨時(shí)變量的方法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI