grammar of the language указывает, что позиционные аргументы появляются перед ключевым словом или помеченных аргументов в вызовах:
argument_list ::= positional_arguments ["," starred_and_keywords]
["," keywords_arguments]
| starred_and_keywords ["," keywords_arguments]
| keywords_arguments
В частности, ключевое слово аргумент выглядит следующим образом: tag='insider trading!'
в то время как позиционные аргумент выглядит следующим образом: ..., exchange, ...
. Проблема заключается в том, что вы, похоже, скопировали/вставили список параметров и оставили некоторые из значений по умолчанию, что делает их похожими на ключевые слова, а не на позиционные. Это прекрасно, за исключением того, что вы снова возвращаетесь к использованию позиционных аргументов, что является синтаксической ошибкой.
Также, если аргумент имеет значение по умолчанию, например price=None
, это означает, что вам не нужно его предоставлять. Если вы не предоставите его, он будет использовать значение по умолчанию.
Чтобы устранить эту ошибку, конвертировать позже позиционные аргументы в именованных аргументов, или, если они имеют значения по умолчанию, и вы не должны использовать их, просто не указывать их вообще:
order_id = kite.order_place(self, exchange, tradingsymbol,
transaction_type, quantity)
# Fully positional:
order_id = kite.order_place(self, exchange, tradingsymbol, transaction_type, quantity, price, product, order_type, validity, disclosed_quantity, trigger_price, squareoff_value, stoploss_value, trailing_stoploss, variety, tag)
# Some positional, some keyword (all keywords at end):
order_id = kite.order_place(self, exchange, tradingsymbol,
transaction_type, quantity, tag='insider trading!')
Либо добавьте больше ключевых слов, либо удалите их. –
Сообщение об ошибке сообщает вам точно, что случилось. Посмотрите на документацию. Узнайте, что означают фразы «позиционный аргумент» и «аргумент ключевого слова». Он тебя не убьет. Обещаю. –
Я искал его. Если вы знаете решение, разместите его. Я не могу понять, что случилось –