キャッシュ/永続性の理由から、基本クラスのサブクラスの任意に大きなツリー (それ自体は作成されません) の一意のハッシュ可能なアドレスを取得しようとしています。現時点での様子は次のとおりです。
OBJECT_CACHE = dict()
class Base(object):
def __new__(cls, *args, **kwargs):
# calculate class_addr here?
obj = OBJECT_CACHE.get(class_addr)
if obj is None:
obj = super(Base, cls).__new__(cls, *args, **kwargs)
OBJECT_CACHE[class_addr] = obj
return obj
しかし、そのようなIDを取得するための最良の方法が何であるかはわかりません。私のコンセプトは、次のようになるということです。
Base: # no id
F # id = 'f'
A: # id = 'a'
E # id = 'a.e'
B: # id = 'a.b'
C # id = 'a.b.c'
D # id = 'a.b.d'
プロパティで何かを試してみることを考えましsuper()
たが、理想的には、サブクラスにはmy_id = 'e'
. 前もって感謝します!