我想编写一个函数,其中一个参数的默认值是传递给同一函数的某些参数的函数。像这样:
def function(x, y = function2(x)):
##definition of the function
是否可以在Python中编写这样的函数? 我遇到了this的c ++答案。但是Python中没有方法重载
谢谢。
答案 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)