混乱するタイトルに申し訳ありません。Cマクロに似た名前の関数をPythonで作成することは可能ですか?
Iは、次の操作を実行したい:
(Lispでdefstruct
に類似)
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)として表現します
ですから、実際のメモリがありません場合は、これらのゲッターとセッターは何をすべきかをしたいですか? – robert
あなたはあなたの嫌悪感をより具体的に表現できますか?関数を辞書に入れると、本質的にクラスを改革しただけです。これは、これが向かうところのように聞こえる。 – nmichaels
私は巨大な木構造を持っています。オブジェクトの代わりにOIDを使用することで逃げることができれば、結果としてオブジェクト参照を使用していません。すべてのオブジェクトへのアクセスは、代わりにデータベース操作(ルックアップと更新)に変換されます。 – dividebyzero