84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
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
函数是不是直接执行Return 再回到循环体?
初学者还有很多不懂,请多指教,谢谢
走同样的路,发现不同的人生
Apabila menggunakan operator nilai subskrip [], atur cara akan mengakses fungsi __getitem__ objek.
[]
__getitem__
f[0] bersamaan dengan f.__getitem__(self, 0), n diberikan nilai 0
f[0]
f.__getitem__(self, 0)
n
a = 0, b = 1 for x in range(0): # 这里range(0) 直接跳过 a, b = b, a + b return a # a = 0
Jadi f[0] = 0.
f[0] = 0
Saya tidak tahu apa yang berlaku, jadi saya nyahpepijat langkah demi langkah dan menyemak dokumentasi.
f[0], iaitu n = 0
for x in range(n): a, b = b, a + b
Isi gelung kembali terus, jadi a tidak berubah dan masih 0.
Apabila menggunakan operator nilai subskrip
[]
, atur cara akan mengakses fungsi__getitem__
objek.f[0]
bersamaan denganf.__getitem__(self, 0)
,n
diberikan nilai 0Jadi
f[0] = 0
.Saya tidak tahu apa yang berlaku, jadi saya nyahpepijat langkah demi langkah dan menyemak dokumentasi.
f[0], iaitu n = 0
Isi gelung kembali terus, jadi a tidak berubah dan masih 0.