Estoy llamando a una función como esta en python.
order_id = kite.order_place(self, exchange, tradingsymbol, transaction_type, quantity, price, product, order_type, validity, disclosed_quantity=None, trigger_price=None, squareoff_value, stoploss_value, trailing_stoploss, variety, tag='')
Aquí está el código de la documentación de la función ..
def order_place(self, exchange, tradingsymbol, transaction_type, quantity, price=None, product=None, order_type=None, validity=None, disclosed_quantity=None, trigger_price=None, squareoff_value=None, stoploss_value=None, trailing_stoploss=None, variety='regular', tag='')
Me esta dando un error como este..
¿Cómo resolver este error? Gracias !
La gramática del lenguaje especifica que los argumentos posicionales aparecen antes de la palabra clave o los argumentos destacados en las llamadas:
argument_list ::= positional_arguments ["," starred_and_keywords] ["," keywords_arguments] | starred_and_keywords ["," keywords_arguments] | keywords_arguments
Específicamente, un argumento de palabra clave se ve así: tag='insider trading!'
mientras que un argumento posicional se ve así: ..., exchange, ...
. El problema radica en que parece haber copiado/pegado la lista de parámetros y dejado algunos de los valores predeterminados en su lugar, lo que hace que parezcan argumentos de palabras clave en lugar de posicionales. Esto está bien, excepto que luego vuelve a usar argumentos posicionales, lo cual es un error de sintaxis.
Además, cuando un argumento tiene un valor predeterminado , como price=None
, eso significa que no tiene que proporcionarlo. Si no lo proporciona, utilizará el valor predeterminado en su lugar.
Para resolver este error, convierta sus argumentos posicionales posteriores en argumentos de palabras clave o, si tienen valores predeterminados y no necesita usarlos, simplemente no los especifique:
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!')