クラスはPythonのオブジェクトであるため、実行時にクラスを作成または変更できます。あなたは「メタクラス」と呼ばれている必要なもの、ここでいくつかの例は以下のとおりです。 http://eli.thegreenplace.net/2011/08/14/python-metaclasses-by-example
あなたのクラスが互いから継承しない場合 - super()
を使用する方法はありません。ここ
は、クラスAのメンバーの完全なコピーを有するCクラスBの作成例である:
#!/usr/bin/python
class A():
a = 5
b = 'b'
c = "test value"
a = A()
print "Class A members:"
print a.a
print a.b
print a.c
# Please note that class B does not explicitly declare class A members
# it is empty by default, we copy all class A methods in __init__ constructor
class B():
def __init__(self):
# Iterate class A attributes
for member_of_A in A.__dict__.keys():
# Skip private and protected members
if not member_of_A.startswith("_"):
# Assign class A member to class B
setattr(B, member_of_A, A.__dict__[member_of_A])
b = B()
print "Class B members:"
print b.a
print b.b
print b.c
これはPythonのクラスではなく、Djangoのモデルの一例です。 Djangoモデルクラスの場合、解決策は異なるかもしれません。
私はpython 2.7を使用しています。あなたの答えを明確にすることができるいくつかのものを追加できますか? –