求助
class Countlist:
def __init__(self,*args): 这里*args没明白
self.values = 这里为什么是 x for x in args ,我知道是想获取一个列表来存放,之前不都是 for x in 什么吗,
self.count = {}.fromkeys(range(len(self.values)),0) 这句话也有点难懂,,,朦朦胧胧的,似懂非懂,,
def __len__(self):
return len(self,value)
def __getitem__(self,key):
self.count+=1
return self.values def __init__(self,*args): 这里*args没明白
参数前面加个 * 号就可以填入任意参数个数,然后以元组形式给 args
self.values = 这里为什么是 x for x in args ,我知道是想获取一个列表来存放,之前不都是 for x in 什么吗,
这个是列表推导式,举个例子 就是遍历 range 0~9 加入列表中去,所以你这就是把元素 一个个拿出来放进列表
self.count = {}.fromkeys(range(len(self.values)),0) 这句话也有点难懂,朦朦胧胧的,似懂非懂
fromkeys(seq,value) 就是把 seq 作为键,把 value 作为 值整到列表中去,这里就是把 range(len(self.values))作为键 把 0 作为值都加到字典中去 赋值给 self.count 本帖最后由 WangJS 于 2020-6-7 17:15 编辑
这里*args没明白
这就是可以传无数个参数
>>> def s(*s):
print(s)
>>> s(1,2,3,4)
(1, 2, 3, 4)
这里为什么是 x for x in args ,我知道是想获取一个列表来存放,之前不都是 for x in 什么吗,
就像上面的例子,args是一个元组,for x in args就是遍历这个元组
self.count = {}.fromkeys(range(len(self.values)),0)
就是插入键和值,
键:从0到len(values)-1的数字
值:都是0
和大佬抢最佳{:10_256:} Twilight6 发表于 2020-6-7 17:12
参数前面加个 * 号就可以填入任意参数个数,然后以元组形式给 args
self.count+=1
return self.values
这两句呢,count已经是个字典了,现在这个count是什么意思,下面的返回值是什么 *args 在变量名之前使用一个星号,就是让变量接受任意多的值,也就是 args会变成一个列表(讲的不是很清楚,记得以前小甲鱼说过)
x for x in args 不就是以前学过的列表推导式吗?相当于
list1 = []
for x in args:
list.append(x)
{}.fromkeys(range(len(self.values)),0) 是创建一个字典
相当于emmm
for each in range(len(self.values)):
dict1 = 0这样子吧
沐羽尘 发表于 2020-6-7 17:21
*args 在变量名之前使用一个星号,就是让变量接受任意多的值,也就是 args会变成一个列表(讲的不是很清楚 ...
嗯嗯,这两个点明白了,上面有解释,懂了,谢谢 大佬好快{:10_257:} l919329189 发表于 2020-6-7 17:22
嗯嗯,这两个点明白了,上面有解释,懂了,谢谢
self.count+=1
return self.values
这个就是统计被读取次数的,因为 self.count = {}.fromkeys(range(len(self.values)),0)
已经把分别的键值初始化对应了,所以你每次访问相应 的 key 次数统计就 +1 l919329189 发表于 2020-6-7 17:22
嗯嗯,这两个点明白了,上面有解释,懂了,谢谢
然后返回的是被读取的参数
页:
[1]