内嵌函数
求大神解释下这两个的区别,,加括号和不加括号有什么区别呢。。不带括号表示地址,地址后面加括号表示调用 wp231957 发表于 2022-4-10 20:34
不带括号表示地址,地址后面加括号表示调用
emmm 听的不是特别清晰 能举个小小的例子让我明白下么。。。第一次接触编程的函数 Victor0321 发表于 2022-4-11 16:16
emmm 听的不是特别清晰 能举个小小的例子让我明白下么。。。第一次接触编程的函数
#先看一个普通的函数
def add(a,b):
return a+b
#看正常调用
print(add(5,6))
#看一下另类调用
wp=add
print(wp(5,6))
#这里看一下嵌套函数
def add(a,b):
def sub(c,d):
return c-d
return sub(a,b)
#看一下调用
print(add(5,6))
#看一下另类调用
def add(a,b):
def sub(c,d):
return c-d
return sub
print(add(5,6)(5,6))
print(add(5,6)(15,6))
wp231957 发表于 2022-4-11 16:31
#先看一个普通的函数
def add(a,b):
return a+b
#看一下另类调用
def add(a,b):
def sub(c,d):
return c-d
return sub
我试了试pirnt(add(5,6))显示的是函数的地址。。所以 这个add(5,6)()我可以不可以在这个例子中就等于是sub()
<function add.<locals>.sub at 0x00000167C272B0A0> Victor0321 发表于 2022-4-11 17:12
#看一下另类调用
def add(a,b):
def sub(c,d):
对的,实际上我举这个例子是有些瑕疵的
你知道咋回事就行了 wp231957 发表于 2022-4-11 18:03
对的,实际上我举这个例子是有些瑕疵的
你知道咋回事就行了
嗯嗯我大概理解了 意思了。。放在实际的应用中 比如我定义了下面这个power()函数,这样写是不是有问题啊 ,最后外层的这个函数应该是return exp_ 函数的引用,所以不应该是返回的是exp_ ()的值或者说是调用
def power(exp):
def exp_ (base):
return base ** exp
return exp_() Victor0321 发表于 2022-4-11 19:39
嗯嗯我大概理解了 意思了。。放在实际的应用中 比如我定义了下面这个power()函数,这样写是不是有问题 ...
这个属于返回值,那么应该保证形参一致
比如你这个实际形参是一个,而你调用的参数是0个,这就是不可以的
页:
[1]