有沒有比使用inspect
模塊更清晰的方法來獲取方法的默認值?我想這樣做:默認方法python
class C(object):
def __init__(self,Type='generic',X=5,Y=500):
defaults=getDefaults() #not sure about this line
typeDefaults_X={'short':'1','long':'10'}
typeDefaults_Y={'large':2000,'small':100}
if X == defaults['X']:
X = typeDefaults_X.get(Type, defaults['X'])
if Y == defaults['Y']:
Y = typeDefaults_Y.get(Type, defaults['Y'])
我知道我可以做到這一點:
defaults=dict(zip(inspect.getargspec(C.__init__).args[1:],inspect.getargspec(C.__init__).defaults))
但似乎如此可怕未Python的。
有什麼意義?你想做什麼? – 2011-04-19 01:12:40
你會想'=='而不是'is';例如注意'100000 + 1是100000 + 1'是假的,但是'100 + 1是100 + 1'是真的。 – ninjagecko 2011-04-19 01:32:48
你的代碼說的是「如果我們不爲argN輸入任何內容,將其設置爲lookupTable [typeString];如果失敗,將其設置爲默認值」。不幸的是,這個接口沒有意義,因爲你只有1個typeString參數,但你的變量似乎都依賴於它,並且它們都有不同的鍵的單獨查找表。你想做什麼? – ninjagecko 2011-04-19 01:35:57