難道是OK從其基地(超?)類聲明子類的類的實例,因爲我在這裏做:的Python:嵌套類繼承
if 'classB_args' in dictArg.keys() and dictArg['classB_args']:
self['classB']=ClassA(dictArg['classB_args'])
是否有這樣做的任何副作用所以?在繼續前進之前我應該知道些什麼。我有一種感覺遲早會出現問題......用cPickle,pickle或者可能是PyQt拖放?如果是的話,那麼爲什麼會出現問題?
class Base(dict):
def __init__(self, *args, **kwargs):
super(Base, self).__init__(*args, **kwargs)
self.setdefault('id', -1)
self.setdefault('name', None)
self.setdefault('classB', None)
if not args or len(args)==0: return
dictArg=args[0]
if 'classB_args' in dictArg.keys() and dictArg['classB_args']:
self['classB']=ClassA(dictArg['classB_args'])
def getClassB(self):
return self['classB']
class ClassA(Base):
def __init__(self, *args, **kwargs):
if not (args or kwargs): raise Exception('you need to give me *something*!')
super(ClassA, self).__init__(*args, **kwargs)
self.setdefault('win', None)
self.setdefault('mac', None)
myDictArg= {'id':1, 'name':'MyName', 'win':'c:/windows', 'mac': '/Volumes/mac/', 'classB_args': {'id':1, 'name':'MyProject'}}
myInstance=ClassA(myDictArg)
print myInstance.getClassB()
[XY問題(HTTP:// meta.stackexchange.com/a/66378/174568)... – ekhumoro
你的代碼中沒有嵌套類,所以你的問題的標題是誤導性的。 – martineau