2010-02-22 112 views

回答

0

看起來像是要傳入一組配置項目。請參閱source code

1

你看到的是「關鍵字參數」。您可以使用字典或命名參數調用構造函數。下面是使用關鍵字參數的例子:

 
class MyClass(object): 
    def __init__(self,**kwargs): 
     if 'val' in kwargs: 
      self.__value = kwargs['val']; 
     elif 'value' in kwargs: 
      self.__value = kwargs['value']; 
     else: 
      raise ValueError("Requires parameter 'val' or 'value'."); 
    def getValue(self): 
     return self.__value; 

# ... 

def main(argv=None): 
    # ... 
    instance1 = MyClass(val=5); 
    x = instance1.getValue(); # value is 5 

    instance2 = MyClass(value=6); 
    y = instance2.getValue(); # value is 6 

    valuedict = {'val':10}; 
    instance3 = MyClass(**valuedict); 
    z = instance3.getValue(); # value is 10 

關鍵字參數都不錯,因爲它們可以讓你的功能和構造非常靈活,而且 - 這可以從過去的實例案例中可以看出 - 有可能構建該對象來自配置字典。關鍵字參數的主要缺點是,因爲它非常靈活,所以選項可能並不明顯。你可以嘗試執行「pydoc pyvb.vm」,或者如前所述,你可以看看source code,它顯示了支持的屬性。