Mám pocit, že už jsem to někde viděl, ale nejsem si jistý, zda to je re-konstruována paměti, nebo pokud je to opravdu existuje. V žádném případě nemohu najít odkaz na tuto situaci:
class A:
a = 1
class B(A): # should have it's own class attribute 'a'
pass
class C(A): # should have it's own class attribute 'a' and newly defined 'c'
c = 3
Ve výše uvedeném příkladu, A.a is B.a is C.a
. Ale, vlastně jsem chtěl, je být samostatný při zachování této struktury. Tam je dobrý důvod pro to a nechci diskutovat o proměnné instance. Důvodem pro to je, že v mé aplikaci všechny tyto třídy jsou používány jako 'jmenné prostory'. K vyřešení "problému", nahradím A
zdědil díly kopii sebe sama jako (pseudo kód):
class A:
a = 1
class B(A): # B.a resolves to A.a
pass
class C(A): # C.a resolves to A.a
c = 3
copy_func(B.A, A) # investigates public attrs of A and B and create copies, now B.a is not A.a
copy_func(C.A, A) # investigates public attrs of A and B and create copies, now C.a is not A.a
copy_func
verze... ale to je ještě dobrá odpověď.