python獲取物件成員函式與變數

2021-10-06 03:51:23 字數 1009 閱讀 4516

python在程式設計中總是不清楚物件的成員方法,通過一些內建函式可以在執行環境中得到成員函式和成員變數。當然也可以應用inspect庫函式檢視。

classa(

object):

def__init__

(self, x)

: self.x = x

obj = a(

)print

(obj.__dict__)

print

(vars

(obj)

)print

(dir

(obj)

)

執行結果:

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'get_x', 'x']

從執行結果來看,成員變數__dict__和vars()都可以抽取物件的成員變數做成字典。但在實際使用中發現有時候可能會出錯,返回只有類的變數型別,而沒有成員變數。類似於

除錯發現,如果出現這種錯誤,可以呼叫

print

(dict

(obj)

)

來展示成員變數。但是對於不可迭代的類,dict函式不可用。

dir函式可以抽取物件可用的所有成員函式。

const物件與const成員函式

const物件只能呼叫const成員函式 includeusing namespace std class a public void fun const cout const 成員函式 但是如果把第以1個fun注釋掉就會出錯 error c2662 a fun 不能將 this 指標從 const...

常成員函式與常物件

先明確幾個概念 1.常物件只能呼叫常成員函式。2.普通物件可以呼叫全部成員函式。3.當對乙個物件呼叫成員函式時,編譯程式先將物件的位址賦給this指標,然後呼叫成員函式,每次成員函式訪問資料成員時,由隱含使用this指標。4.當乙個成員函式被呼叫時,自動向它傳遞乙個隱含的引數,該引數是乙個指向這個成...

常物件與常成員函式

常物件的宣告形式 必須進行初始化,不能被更新 const 類名 物件名 常引用 被引用的物件不能被更新 const 型別說明符 引用名 常陣列 陣列元素不能被更新 型別說明符 const 陣列名 大小 常指標 指向常量的指標,指向的內容不能通過該指標改變,但可以改變指向的物件 const 型別說明符...