コンテキスト: オブジェクトを別のオブジェクトに置き換えたい:
x = []
r = [2]
replace(x, r)
assert x == [2]
assert x is r
Smalltalk では、これは と呼ばれbecome
ます。
質問: どうすればいいですか? C拡張を作成する必要がありますか、それともすでにこのようなものがありますか?
私は試しました: これしかし、私は非常に多くのケースを処理する必要があります。ポインターの背後にあるオブジェクトを変更するだけで十分です。
理由:機能、改良、サブジェクトなどの拡張機能を実装したい。組み込みオブジェクトのクラスを変更してos.__class__ = X
柔軟性を高めることができない場合があります。それができないので、交換を考えました。
具体的な使用例:
主観的な見方:
import pylung
pylung.deutsch()
import os # I want to preserve object identity with the original os
os.ERREICHE_SETZEN
os.durchlaufe(...)
翻訳:
import os
import pylung
os = pylung.translate(os, 'deutsch') # German
@os.walk
def durchlaufe(ordner, oben_nach_unten, folge_links):
"""Ordner baum erzeuger
"""