没学过c可以学python吗_之前学过c 这段python可不可以这样理解

源自:2-9 python中闭包

之前学过c 这段python可不可以这样理解

#给出的错误答案

# 希望一次返回3个函数,分别计算1x1,2x2,3x3:

def count():

fs = []

for i in range(1, 4):

#上面这个i并不会因为count函数的结束而回收内存,值也会一直保存,

#这个i只有count函数内才可以访问,即使是在只调用count里的内层函数时

def f():

return i*i

#这里的i是是指向第四行创建的i的地址

#并不是创建了新的一块内存空间

fs.append(f)

return fs

f1, f2, f3 = count()

#给出的标准答案

def count():

fs = []

for i in range(1, 4):

def f(j):

#每次运行都为j创建一块新的内存,并保存传来的值,且所有的都不会被销毁

def g():

return j*j

#这个j指向运行f函数时创建j的内存地址

return g

r = f(i)

#运行f函数返回g函数,返回的g中j都是指向(当前运行f时新创建的的内存)

#每个g函数都是不一样的

fs.append(r)

return fs

f1, f2, f3 = count()

print f1(), f2(), f3()

提问者:122138763238273

2017-07-25 22:35

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值