首页 > 试题广场 >

以下程序输出为:def w1(): &nb...

[单选题]
以下程序输出为:
def w1():
   print('正在装饰')
   def inner():
        print('正在验证权限')
 
   return inner()
 
w1()


  • 正在装饰 正在验证权限
  • 正在装饰
  • 正在验证权限
  • 运行错误
如果外层函数返回的是一个函数名的话,运行结果应该是:正在装饰
如果外层函数返回的是函数调用的话,运行结果是:正在装饰 正在验证权限
编辑于 2019-11-13 10:03:35 回复(5)

因为return inner()后面有括号所以会执行函数。如果改成:

def w1():
    print("正在装饰")
    def inner():
        print("正在验证权限")
    return inner

最后一行的括号去掉,那么结果就是“正在装饰”

发表于 2019-11-21 21:29:28 回复(9)
def w1():
   print('正在装饰')
   def inner():
        print('正在验证权限')
  
   return inner()
  
w1()
w1()调用会打印“正在装饰”,w1()的最后有调用了inner(),会打印“正在验证权限”
发表于 2019-12-04 03:06:16 回复(2)
这个题的代码缩进应该是出错了。
从答案倒推代码的话,代码应该是
def w1():
   print('正在装饰')
   def inner():
        print('正在验证权限')

   return inner()

w1()


这样才会运行出答案
发表于 2019-10-31 11:02:33 回复(6)

答案应该是B吧

发表于 2019-10-30 08:42:46 回复(2)
def w1():
    print('正在装饰')
    def inner():
        print('正在验证权限')
    return inner()
w1()
Python的函数中可以定义函数,函数也可以返回函数。

编辑于 2019-10-22 20:03:49 回复(2)
<p>inner是一个地址,inner ()是执行以这个地址开头的函数</p><p><br></p>
发表于 2020-11-19 00:06:46 回复(0)
发表于 2019-11-25 17:01:19 回复(0)
发表于 2019-10-30 17:27:32 回复(1)
def w1():
    print("正在装饰")
    def inner():
        print("正在验证权限")
    return inner()
调用函数w1()输出的是:正在装饰 正在验证权限
def w1():
    print("正在装饰")
    def inner():
        print("正在验证权限")
    # return inner()
调用函数w1()输出的是:正在装饰 
def w1():
    print("正在装饰")
    def inner():
        print("正在验证权限")
    return inner
调用函数w1()输出的是迭代器
<function __main__.w1.<locals>.inner()>
发表于 2022-06-01 09:38:40 回复(0)
这是一道流氓题。 按照装饰器的样式写,并且打印字符串也是装饰器。 单实际不是装饰器。关键在于 return 的函数后面带不带括号。
发表于 2021-04-04 20:07:06 回复(0)
<p>返回函数调用说明inner ()被执行</p>
发表于 2020-08-31 17:17:01 回复(0)
<p>只执行w1里面的东西,有无()意味着是执行里面全部的东西 还是 只单独执行这个名称而已</p>
发表于 2020-08-08 22:59:11 回复(0)
def w1():
   print('正在装饰')
   def inner():
        print('正在验证权限')
  
   return inner()
  
w1()

注意看,return后面有个括号,没注意
发表于 2020-05-21 15:06:36 回复(0)
w1这个函数中有两个内容分别是:print("正在装饰")和定义了一个函数w2,直接调用会直接print但w2不会执行 因为没调用只是定义了
但返回值为w2(),有括号代表w2会执行,会print出w2的内容,所以按照顺序先printw1 再返回w2()print出w2的内容
编辑于 2024-04-18 20:47:38 回复(1)
返回调用子函数
发表于 2023-06-15 15:42:39 回复(0)
要注意看返回的是函数 还是函数名
发表于 2023-01-29 19:06:22 回复(0)
没注意括号
发表于 2023-01-23 09:23:26 回复(0)
加()会执行函数,不加()不会执行
发表于 2022-11-15 19:22:35 回复(0)
这是闭包么
发表于 2022-11-05 11:32:35 回复(0)