将参数映射到值的Python快捷方式?
我有这个功能:将参数映射到值的Python快捷方式?,python,python-3.x,Python,Python 3.x,我有这个功能: @staticmethod def get_curl_params(url=None, headers=None, post=None, curl_proxy=None, curl_success=None, should_use_cookies=False, should_follow_location=False, should_include_referer=False, custom_request='Get',
@staticmethod
def get_curl_params(url=None, headers=None, post=None, curl_proxy=None, curl_success=None, should_use_cookies=False,
should_follow_location=False, should_include_referer=False, custom_request='Get',
should_verify_ssl=False, head=None, timeout_limit=60, site_rate_limit_seconds=None):
curl_params = CurlParameters()
curl_params.url = url
curl_params.headers = headers
curl_params.post = post
curl_params.curl_proxy = curl_proxy
curl_params.curl_success = curl_success
curl_params.should_use_cookies = should_use_cookies
curl_params.should_follow_location = should_follow_location
curl_params.should_include_referer = should_include_referer
curl_params.custom_request = custom_request
curl_params.should_verify_ssl = should_verify_ssl
curl_params.head = head
curl_params.timeout_limit = timeout_limit
curl_params.site_rate_limit_seconds = site_rate_limit_seconds
return curl_params
它将创建一个新的curl_params对象。现在,我传递的所有参数最终都被分配给curl_params.{{VARIABLE NAME}。这样做有捷径吗?以这种方式分配它似乎是重复和明显的 我认为这应该行得通
locals
获取所有局部变量(在本例中为函数中的所有变量)的dict
你能用
locals()
将所有参数传递给构造函数吗?对不起,没有问题,我怎么做?答案的左边应该有一个复选标记(在向下箭头下方)。点击表示这是您问题的正确答案(然后其他人知道问题已解决)。
def get_curl_params(url=None, headers=None, post=None, curl_proxy=None, curl_success=None, should_use_cookies=False,
should_follow_location=False, should_include_referer=False, custom_request='Get',
should_verify_ssl=False, head=None, timeout_limit=60, site_rate_limit_seconds=None):
kwargs = locals()
# if you can pass everything to init, this would be nice
curl_params = CurlParameters(**kwargs)
# otherwise, you can do this:
for name, val in kwargs.items():
setattr(curl_params, name, val)
return curl_params