對Python 獲取類的成員變量及臨時變量的方法詳解
利用Python反射機(jī)制,從代碼塊中靜態(tài)獲取參數(shù):
co_argcount: 普通參數(shù)的總數(shù),不包括參數(shù)和*參數(shù)。
co_names: 所有的參數(shù)名(包括參數(shù)和*參數(shù))和局部變量名的元組。
co_varnames: 所有的局部變量名的元組。
co_filename: 源代碼所在的文件名。
co_flags: 這是一個數(shù)值,每一個二進(jìn)制位都包含了特定信息。較關(guān)注的是0b100(0x4)和0b1000(0x8),如果co_flags & 0b100 != 0,說明使用了*args參數(shù);如果co_flags & 0b1000 != 0,說明使用了**kwargs參數(shù)。另外,如果co_flags & 0b100000(0x20) != 0,則說明這是一個生成器函數(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
以上這篇對Python 獲取類的成員變量及臨時變量的方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
PHP實(shí)現(xiàn)發(fā)送和接收J(rèn)SON請求
本篇文章給大家分享了PHP實(shí)現(xiàn)發(fā)送和接收J(rèn)SON請求的詳細(xì)方法和實(shí)例代碼,有興趣的朋友可以參考學(xué)習(xí)下。2018-06-06Python內(nèi)置模塊ConfigParser實(shí)現(xiàn)配置讀寫功能的方法
這篇文章主要介紹了Python內(nèi)置模塊ConfigParser實(shí)現(xiàn)配置讀寫功能的方法,涉及Python使用ConfigParser模塊進(jìn)行配置讀、寫、修改、刪除等操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-02-02使用pytorch實(shí)現(xiàn)論文中的unet網(wǎng)絡(luò)
這篇文章主要介紹了使用pytorch實(shí)現(xiàn)論文中的unet網(wǎng)絡(luò),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06重寫django的model下的objects模型管理器方式
這篇文章主要介紹了重寫django的model下的objects模型管理器方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python實(shí)現(xiàn)自動收集參數(shù)的技巧分享
在Python中,充分利用函數(shù)參數(shù)的自動收集和靈活處理,是寫出高效且易維護(hù)代碼的關(guān)鍵之一,本文將深入研究Python函數(shù)參數(shù)的收集方式,感興趣的小伙伴可以了解下2023-12-12