【发布时间】:2017-07-06 05:47:26
【问题描述】:
我有一个接受可变长度参数的函数,如下所述。我将kwargs 作为字典传递。但是我不明白为什么会出现错误。
class PanSearch(object):
otp_wait = 30
def __init__(self, surname, dob, mobile_no, otp_host, **kwargs):
kwargs.setdefault('browser', 'chromium')
self.surname = surname
self.dob = dob
self.mobile_no = mobile_no
self.otp_host = otp_host
self.middle_name = kwargs.get('middle_name', None)
self.first_name = kwargs.get('first_name', None)
self.status = kwargs.get('status')
self.gender = 'M' if kwargs.get('status') == 'P' else None
# instantiating the object
otp_host = 'abc.xyz.in'
input_kwargs = {'status': 'P', 'gender': 'M', 'browser': 'chromium'}
driver = PanSearch(surname='kulkarni', dob='13/10/1981', mobile_no='9769172006', otp_host, **input_kwargs)
File "pan_no.py", line 87
driver = PanSearch(surname='kulkarni', dob='13/10/1981', mobile_no='9769172006', otp_host, **input_kwargs)
^
SyntaxError: positional argument follows keyword argument
【问题讨论】:
-
otp_host是变量还是参数的名称?你的意思是otp_host=otp_host? -
把它改成
otp_host=otp_host,或者把它加在关键字参数之前。 -
您在关键字参数(例如
surname='kulkarni)之后传递了一个位置参数(otp_host) -
更新了 otp_host
标签: python