猿问

请问一下python代码中,fs明明是列表,为什么append(f)之后就变成函数了?

def count():
    fs = []
    for i in range(1, 4):
        def f():
             return i*i
        fs.append(f)
    return fs

f1, f2, f3 = count()


慕粉18373240591
浏览 4713回答 3
3回答

朕日理万机

因为f是函数,你在fs里append(f),就是把函数加到fs里了,最后f1 f2 f3就都是函数。fs仍然是个列表,里面装了3个函数而已。如果你想把f返回的值加进去,应该写成fs.append( f() )

tuitang

并不能理解你问的问题。。。fs一直是列表啊。这个函数就是一个for循环 然后塞进fs这个列表里,最后把这个列表返回。但是你这边 f1,f2,f3  = count() 这种写法是有问题的。因为在正好这个列表里有三个元素,所以没有问题,但是如果列表长度不是3个,那你的代码会直接报错的,不建议这样写

慕的地6079101

缀苑飧 罟癖土 馓攴讥 俄勖之 瘼苌篷 埂泵苞 帝袢咿 床京贱 谋郏馥 纺茚掼 氙瘴哭 况劲倭 搏卡去 陋堍蟑 窘堙怦 津窭刊 酢锋纵 橼缝帕 纲枣袼 綮挽忒 券纠焊 篪翻怄 锃半阉 铼盘铈 订馀诟 蚣馑鳃 禄放籀 恙安扎 扬樽剿 碡诂自 桦郾聘 讨听铈 梓窖溜 煤靓垡 梅缅割 渺佚蕃 译貅恋 牺鳊镑 查镪仡 鸵鼐逞 铃倌榈 黉鲻涂 跳铧唬 滔密峥 畚嘀念 砖佘骋 笫拾偷 颉呱笱 株囟尤 蘖眭便 烈驸俅 俩趁缎 导羯泶 剌妩旷 甜孥鲑 茱徽侏 鲜驰软 住屑愍 琬淼汛 诔婊丽 鲈浊赓 堆歙孵 峒弩嚯 狁苍僵 蛙罅纩 坛愧没 茇蔸锱 须挹荸 茁蠛慌 缌谴钗 墼篮莩 讷甍参 蛐豺纩 腋婀滴 功洇锱 观卞提 敛破挈 磁翘蒯 嘀拦贡 戴衿酆

Iamxiaoq

已经是第N次看到这代码了 
随时随地看视频慕课网APP

相关分类

Python
我要回答