Return 一个带参数的函数
Return a function with parameters
我正在尝试创建一个 return 自身带有参数的函数。
Def a (x,y):
*code*
Return a(x,y)
当我尝试 运行 时,这 return 是一个错误。
>>> a(1,2)
RecursionError: maximum recursion depth exceeded
我要的是
>>> a(1,2)
a(1,2)
有没有办法return带参数的函数?
我知道可以做到,但我不知道怎么做
>>> datetime.time(0,0)
Datetime.time(0,0)
编辑:
最好我不想导入任何模块
您似乎没有有效的return。该错误意味着它多次调用自己 python 就放弃了。
示例(良好)将在“'num'”次后结束:
def a(x, num):
if num == 0:
return x
return a(x + 1, num - 1)
示例(坏)永远不会 return 其他任何东西:
def a(x, num):
if num == 0:
return x
return a(x + 1, num)
假设您的意思是您希望它 return 调用函数的字符串表示形式:
def a (x,y):
*code*
return f"a({x},{y})"
或者,如果您不能使用 f 弦:
def a (x,y):
*code*
return "a({x},{y})".format(x=x, y=y)
我认为您在调用以下行时误解了 "returned" 的含义:
>>> datetime.time(0,0)
Datetime.time(0,0)
最初的调用 datetime.time(0,0)
创建了一个 datatime
到控制台的对象。因为您没有保存返回的对象,控制台会自动调用名为 __repr__
.
的 class-method
要复制行为,我们可以创建以下 class
:
>>> class a:
... def __init__(self, x,y):
... self.x = x
... self.y = y
... def __repr__(self):
... return "a({},{})".format(self.x, self.y)
...
>>> a(1,2)
a(1,2)
也许使用嵌套函数或 lambda?
$ python -q
>>> def a(x,y):
... def _a():
... return x + y
... return _a
...
>>> a(1,2)
<function a.<locals>._a at 0x7f048329e560>
>>> a(1,2)()
3
我正在尝试创建一个 return 自身带有参数的函数。
Def a (x,y):
*code*
Return a(x,y)
当我尝试 运行 时,这 return 是一个错误。
>>> a(1,2)
RecursionError: maximum recursion depth exceeded
我要的是
>>> a(1,2)
a(1,2)
有没有办法return带参数的函数?
我知道可以做到,但我不知道怎么做
>>> datetime.time(0,0)
Datetime.time(0,0)
编辑: 最好我不想导入任何模块
您似乎没有有效的return。该错误意味着它多次调用自己 python 就放弃了。 示例(良好)将在“'num'”次后结束:
def a(x, num):
if num == 0:
return x
return a(x + 1, num - 1)
示例(坏)永远不会 return 其他任何东西:
def a(x, num):
if num == 0:
return x
return a(x + 1, num)
假设您的意思是您希望它 return 调用函数的字符串表示形式:
def a (x,y):
*code*
return f"a({x},{y})"
或者,如果您不能使用 f 弦:
def a (x,y):
*code*
return "a({x},{y})".format(x=x, y=y)
我认为您在调用以下行时误解了 "returned" 的含义:
>>> datetime.time(0,0)
Datetime.time(0,0)
最初的调用 datetime.time(0,0)
创建了一个 datatime
到控制台的对象。因为您没有保存返回的对象,控制台会自动调用名为 __repr__
.
class-method
要复制行为,我们可以创建以下 class
:
>>> class a:
... def __init__(self, x,y):
... self.x = x
... self.y = y
... def __repr__(self):
... return "a({},{})".format(self.x, self.y)
...
>>> a(1,2)
a(1,2)
也许使用嵌套函数或 lambda?
$ python -q
>>> def a(x,y):
... def _a():
... return x + y
... return _a
...
>>> a(1,2)
<function a.<locals>._a at 0x7f048329e560>
>>> a(1,2)()
3