代码之家  ›  专栏  ›  技术社区  ›  Pedro Contipelli

如何编写一个不执行任何操作的默认参数回调函数?[Python]

  •  1
  • Pedro Contipelli  · 技术社区  · 1 年前

    有时我想将回调函数作为参数传递给my_function。但是,我希望默认行为只是什么都不做。

    我发现自己想写以下内容 无效的 代码行:

    def my_function(args, callback_function=pass):
      # do something
      callback_function()
    

    这不起作用,所以最好 有效的 我提出的解决方案是:

    def do_nothing():
      pass
    
    def my_function(args, callback_function=do_nothing):
      # do something
      callback_function()
    

    有没有更干净的方法可以做到这一点,更像上面的第一个例子?

    2 回复  |  直到 1 年前
        1
  •  2
  •   CDubyuh    1 年前

    打“无”应该符合你的要求pass是一个关键字,不能像那样调用。None是默认值,可以使用lambda应用。

     def my_function(args, callback_function=lambda: None):
            # do something
            callback_function()
    
        2
  •  2
  •   Daweo    1 年前

    你可以选择接受 None 并且只呼叫 callback_function 当它不是 没有一个 ,即

    def my_function(args, callback_function=None):
      # do something
      if callback_function is not None:
          callback_function()