Получение аргументов через указатели в Python

У меня есть класс, функция которого определяется следующим образом. Я намерен отправить несколько аргументов.

Для тестирования я назвал его как :class_name("argument1","argument2") , и он говорит: __init__accepts atmost 1 arguments , 3 given

 def __init__(self, **options): for name in options: self.__dict__[name] = options[name] 

Каков правильный способ справиться с этим?

Любые предложения приветствуются ……

3 Solutions collect form web for “Получение аргументов через указатели в Python”

Вы хотите использовать одну звездочку вместо двух. Двойные звездочки предназначены для именованных аргументов. В документации на python есть хорошее объяснение, если вы заинтересованы в дальнейшем чтении.

 def __init__(self, *options): for name in options: self.__dict__[name] = name 

Однако из вашего кода я считаю, что реальная проблема заключается в том, что вы неправильно вызываете свою функцию.

Вы хотели бы назвать это так:

 class_name(argument1="some value") def __init__(self, **options): for name,val in options.iteritems(): self.__dict__[name] = val 

Вот более простой способ написать

 def __init__(self, **options): vars(self).update(options) 

Форма * собирает позиционные аргументы:

 def __init__(self, *options): 

и форма ** собирает аргументы ключевых слов:

 def __init__(self, **options): 

Вы предоставляете 2 позиционных аргумента плюс экземпляр как self , но он определен как ожидающий только 1 позиционный аргумент self .

  • csv.DictWriter - TypeError: __init __ () принимает не менее 3 аргументов (4 данных)
  • Хорошие использует значения переменных аргумента переменной?
  • Python, исключающий исключение без аргументов
  • Чтение из файла или STDIN
  • Python inspect.getargspec со встроенной функцией
  • Есть ли способ изменить имя эффективного процесса в Python?
  • Невозможно передать аргумент python с помощью «#! / Usr / bin / env python»
  • Ошибка компилятора Python, x не принимает аргументов (1 данный)
  • Python: передача параметров по имени вместе с kwargs
  • Как использовать getopt / OPTARG в Python? Как переносить аргументы, если задано слишком много аргументов (9)?
  • Почему использование None исправляет изменчивый параметр Python по умолчанию?
  • Python - лучший язык программирования в мире.