我正在寻找一种缩短此python3函数的方法。该函数需要很多输入变量,并检查每个变量是否为None。有没有一种方法可以遍历所有输入变量,并将不是None的变量添加到params字典中?

def news(self, query = None, instrument_id = None, days = None, news_lang = None, news_country = None, market_id = None, limit = None, offset = None, source_id = None):

    params = {}
    if query is not None:
        params['query'] = query
    if instrument_id is not None:
        params['instrument_id'] = instrument_id
    if news_lang is not None:
        params['news_lang'] = news_lang
    if news_country is not None:
        params['news_country'] = news_country
    if limit is not None:
        params['limit'] = limit
    if offset is not None:
        params['offset'] = offset
    if source_id is not None:
        params['source_id'] = source_id

    self.make_cmd('GET', 'news', params)

最佳答案

似乎所有参数都直接传递给make_cmd,所以为什么不使用关键字参数:

def news(self, **params):
    self.make_cmd('GET', 'news', params)

news(query="Test")

关于python - 如何使此代码段更漂亮?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51338770/

10-10 21:47
查看更多