文章詳情頁(yè)
Python 3.5,斐波數(shù)列, a,b = 0,1
瀏覽:107日期:2022-08-31 13:28:22
問題描述
class Fib(object):
def __getitem__(self, n): a, b = 0, 1 for x in range(n):a, b = b, a + b return a
f = Fib()f[0] = 0
不解為什么是f[0] = 0
函數(shù)是不是直接執(zhí)行Return 再回到循環(huán)體?
初學(xué)者還有很多不懂,請(qǐng)多指教,謝謝
問題解答
回答1:在用下標(biāo)取值符[]的時(shí)候,程序會(huì)去訪問對(duì)象的__getitem__函數(shù)。
f[0] 相當(dāng)于 f.__getitem__(self, 0) ,n賦值為0
a = 0, b = 1for x in range(0): # 這里range(0) 直接跳過 a, b = b, a + breturn a # a = 0
所以f[0] = 0。
不知道怎么回事,就一步一步調(diào)試,查文檔。
回答2:f[0]的話,即 n = 0
for x in range(n): a, b = b, a + b
循環(huán)體就直接return了啊,所以是a沒變還是0啊。
相關(guān)文章:
排行榜

熱門標(biāo)簽