對不起,令人困惑的標題。是否有可能在Python中創建類似於C宏的命名函數?
我想做到以下幾點:(類似defstruct
Lisp中)
def mkstruct(structname, field_dict):
# create a function called "structname" and get/set functions
# called "structname_get(s, field_name)" and "structname_set(s, field_name, value)"
# Create a struct "lstnode"
mkstruct("lstnode", {ndkey : 0, nxt: None})
# Make a new struct
node = lstnode()
node_set(node, "ndkey", 5)
v = node_get(node, "ndkey") # v should be 5
這可以在C與宏進行定義。我沒有使用類的原因是因爲我創建的「結構」將被「綁定」到數據庫(在這種情況下,只是某種格式的文本文件)。並且我不想佔用任何與對象關聯的內存 - 我會將結構表示爲一個數字(如果您願意,則使用對象ID)
所以你要這些getter和setter方法做的,如果沒有實際的記憶是什麼? – robert
對於厭惡課堂,你能更具體嗎?如果你把你的函數放在字典中,你基本上只是重新創建了這個類。這聽起來就像是這裏的標題。 – nmichaels
我有一個巨大的樹形結構。如果我可以避免使用OID而不是對象,那麼我不會使用任何對象引用作爲結果。每個對象訪問都被轉換爲數據庫操作(查找和更新)。 – dividebyzero