Python 使用或不带参数调用方法?

Python 使用或不带参数调用方法?,python,arguments,Python,Arguments,有没有办法缩短此时间或跳过if-else检查: if kv is None : self.obj.generate() else : self.obj.generate(**kv) 就这么简单: self.obj.generate(),如果不是kv else,则生成self.obj.generate(**kv)非常简单: self.obj.generate()如果不是kv else self.obj.generate(**kv)请尝试以下代码: li = [{},kv] self.obj.

有没有办法缩短此时间或跳过if-else检查:

 if kv is None : self.obj.generate()
 else : self.obj.generate(**kv)
就这么简单:

self.obj.generate(),如果不是kv else,则生成self.obj.generate(**kv)

非常简单:

self.obj.generate()如果不是kv else self.obj.generate(**kv)

请尝试以下代码:

li = [{},kv]
self.obj.generate(**li[bool(kv)])
  • 您为您的两个结果生成一个两元素列表

  • 使用列表中的两个元素之一调用方法;布尔(千伏)是你的开关

  • 如果kv为无(或0),则bool(kv)变为假(等于0)

    如果kv不是零,则布尔(kv)变为真(等于1)

    当然,您可以在一行中完成整个过程:

    self.obj.generate(**[{},kv][bool(kv)])
    
    请尝试以下代码:

    li = [{},kv]
    self.obj.generate(**li[bool(kv)])
    
  • 您为您的两个结果生成一个两元素列表

  • 使用列表中的两个元素之一调用方法;布尔(千伏)是你的开关

  • 如果kv为无(或0),则bool(kv)变为假(等于0)

    如果kv不是零,则布尔(kv)变为真(等于1)

    当然,您可以在一行中完成整个过程:

    self.obj.generate(**[{},kv][bool(kv)])
    

    self.obj.generate(**(kv或{}))
    谢谢。。坏的事情是没有,而不是{};(
    self.obj.generate(**(kv或{}))
    谢谢..糟糕的是它必须是无,而不是{}(