Python-为作为函数其他参数的函数传递默认值

时间:2018-06-24 08:21:25

标签: python function arguments

我想编写一个函数,其中一个参数的默认值是传递给同一函数的某些参数的函数。像这样:

def function(x, y = function2(x)):
    ##definition of the function

是否可以在Python中编写这样的函数? 我遇到了this的c ++答案。但是Python中没有方法重载

谢谢。

4 个答案:

答案 0 :(得分:7)

解决此问题的一种非常常见的方法是使用None作为占位符:

def function(x, y=None):
    if y is None:
        y = f2(x)

    pass  # whatever function() needs to do

答案 1 :(得分:1)

这没有任何意义。你想达到什么目的?什么是Y?是功能吗?那么您必须写:

def function(x, y = function2):
    ##definition of the function

如果Y是一个简单值,则必须编写:

def function(x, y = None):
    if y is None:
         y = function2(x)

答案 2 :(得分:0)

我不知道您要在这里实际实现什么用例,但是您可以使用可以满足您需求的装饰器。

一个愚蠢的例子在这里https://repl.it/@SiddharthShishu/IntrepidPunctualProspect

答案 3 :(得分:0)

def function(x, y=None):
    if y is None:
        y = f2(x)