如何根据先前的参数定义默认参数值?

CIs*_*ies 5 python default-value python-3.x

我想定义一个resize(h, w)方法,并且我希望能够以两种方式之一调用它:

  1. resize(x,y)
  2. resize(x)

在第二次调用中,我希望y等于x. 我可以在方法定义中执行此操作,还是应该执行类似操作resize(x,y=None)并在内部进行检查:

if y is None:
    y = x
Run Code Online (Sandbox Code Playgroud)

Jim*_*ard 5

我可以在方法定义中这样做吗

不可以。在方法定义期间,无法知道x运行时可能具有的值。默认参数在定义时评估一次,无法为 保存动态值y

或者我应该做类似的事情resize(x,y=None)并检查内部

确切地。这是 Python 中的常见习语。