为了账号安全,请及时绑定邮箱和手机立即绑定

fn(x)中的参数x从哪里来呢?

如题,return fn,这时g1指向了fn,有没进行了fn(x)的调用?如果进行了调用,貌似并没有传到参数给x呀。

>>> def f1(x):

...     return x*2

...

>>> def new_fn(f):

...     def fn(x):

...         print 'call'+f._name_+'()'

...         return f(x)

...     return fn

...

>>> g1=new_fn(f1)

>>> print g1(5)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "<stdin>", line 3, in fn

AttributeError: 'function' object has no attribute '_name_'


正在回答

1 回答

g1(5)中的5传到了fn(x)中的x,g1指向了fn,fn是要传入一个参数的,相当于g1要传入一个参数,最后一句print g1(5)相当于有执行fn(5),fn函数中又有f(x),相当于执行f(5),相当于执行f1(5),望采纳

5 回复 有任何疑惑可以回复我~
#1

宝慕林5862680 提问者

明白了,谢谢你
2019-02-07 回复 有任何疑惑可以回复我~
#2

慕的地8077753

f()这个函数是哪里来的呢?视频中只看到了f1(x)、new_fn(f)和fn(x)这三个函数,返回值中有个return f(x),这个不明白,应该没有f(x)这个函数啊
2019-08-31 回复 有任何疑惑可以回复我~
#3

隐藏的秘密果 回复 慕的地8077753

在调用new_fn函数的时候就默认把变量传给了括号内的ff
2019-11-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

fn(x)中的参数x从哪里来呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信