鱼C论坛

 找回密码
 立即注册
查看: 2590|回复: 8

[已解决]class类后边怎么会跟一串数字?

[复制链接]
发表于 2020-7-7 06:44:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
类后边一般没有括号啊, 有括号也是为了继承父类啊,这里为什么小甲鱼直接在实例化类的时候,在类后边传入一穿数字啊?
最佳答案
2020-7-7 06:59:01



在定义函数的时候,如果定义的参数带 * 号,就是指可以传入不定数量的参数个数,并将这些参数全部保存成 args 元组

所以这里 c1 = CountList(1,3,5,7,9)  就是任意传入的参数个个数,而且这里传入的都是整型,所以甲鱼哥可以直接通过索引访问容器内的元素进行相加

即你传入了 1、3、5、7、9 元素会储存在 args = (1, 3, 5, 7, 9)  元组中,c2 实例对象同理

而且这里甲鱼哥通过列表推导式将 args 元组中的元素赋值给了 values,然后通过 fromkeys 函数创建了一个计数字典 count

而这里的 CountList 类就是用来统计 参数被访问的次数的,用当你通过索引获取容器中的元素时

__getitem__ 方法会捕获你对类中容器元素的获取,然后自动调用 __getitem__ 魔法方法,用来统计你访问的元素次数



1594075319769.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-7 06:59:01 | 显示全部楼层    本楼为最佳答案   



在定义函数的时候,如果定义的参数带 * 号,就是指可以传入不定数量的参数个数,并将这些参数全部保存成 args 元组

所以这里 c1 = CountList(1,3,5,7,9)  就是任意传入的参数个个数,而且这里传入的都是整型,所以甲鱼哥可以直接通过索引访问容器内的元素进行相加

即你传入了 1、3、5、7、9 元素会储存在 args = (1, 3, 5, 7, 9)  元组中,c2 实例对象同理

而且这里甲鱼哥通过列表推导式将 args 元组中的元素赋值给了 values,然后通过 fromkeys 函数创建了一个计数字典 count

而这里的 CountList 类就是用来统计 参数被访问的次数的,用当你通过索引获取容器中的元素时

__getitem__ 方法会捕获你对类中容器元素的获取,然后自动调用 __getitem__ 魔法方法,用来统计你访问的元素次数



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-7 07:58:36 | 显示全部楼层
类中__init__里面有个参数,叫*args,这里的*号,默认就可以接受多个参数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 08:48:55 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-7 09:00:15 | 显示全部楼层
Twilight6 发表于 2020-7-7 06:59
在定义函数的时候,如果定义的参数带 * 号,就是指可以传入不定数量的参数个数,并将这些参数全部保 ...

大佬...你都起这么早的么...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 09:01:39 | 显示全部楼层
yhhpf 发表于 2020-7-7 09:00
大佬...你都起这么早的么...

没 只是今天早点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 12:09:37 | 显示全部楼层
因为*args可以接受多个参数,所以可以这样。

别忘记设置最佳答案!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 16:54:37 | 显示全部楼层
Twilight6 发表于 2020-7-6 22:59
在定义函数的时候,如果定义的参数带 * 号,就是指可以传入不定数量的参数个数,并将这些参数全部保 ...

类不是一般只要 给出名称就可以了么, 参数不是应该是定义在方法里边么??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 16:55:13 | 显示全部楼层
Twilight6 发表于 2020-7-6 22:59
在定义函数的时候,如果定义的参数带 * 号,就是指可以传入不定数量的参数个数,并将这些参数全部保 ...

好了  我明白了  因为init是初始化构造函数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-23 05:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表