如何使参数的默认值取决于另一个参数(在Python中)?

ele*_*bby 14 python arguments function

例如,我想:

def func(n=5.0,delta=n/10):
Run Code Online (Sandbox Code Playgroud)

如果用户指定了增量,请使用它.如果不是,请使用取决于n的值.这可能吗?

Kar*_*ath 16

该语言不支持此类语法.

这些情况(*)的常用解决方法是使用默认值,该值不是有效输入.

def func(n=5.0, delta=None):
     if delta is None:
         delta = n/10
Run Code Online (Sandbox Code Playgroud)

(*)当默认值是可变的时,会出现类似的问题.


Bre*_*arn 5

您不能在函数定义行本身中执行此操作,而需要在函数主体中执行此操作:

def func(n=5.0,delta=None):
    if delta is None:
        delta = n/10
Run Code Online (Sandbox Code Playgroud)