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 型別說明符...