Python Virtualbox API - PullRequest
       5

Python Virtualbox API

0 голосов
/ 22 февраля 2010

http://enomalism.com/api/pyvb/

здесь у нас есть def _init_(self,**kw):

какие параметры должны быть переданы при создании экземпляра для pyvb.vm.vbVM ???

Ответы [ 2 ]

1 голос
/ 23 февраля 2010

То, что вы видите, это "аргументы ключевых слов". Вы можете вызвать конструктор со словарем или именованными аргументами. Вот пример использования ключевых аргументов:

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» или, как уже было сказано, вы можете взглянуть на исходный код , который показывает поддерживаемые атрибуты.

0 голосов
/ 22 февраля 2010

Похоже, вы хотите передать массив элементов конфигурации. См. исходный код .

...