鱼C论坛

 找回密码
 立即注册
查看: 3005|回复: 6

[已解决]类到底需不需要加括号?

[复制链接]
发表于 2020-6-20 23:18:47 | 显示全部楼层 |阅读模式

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

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

x
定义一个类:class 类名:(类名第一个字母要大写)
但是类名后面需不需要加括号呢?
比如:class A:  和  class A():

我看课后题或者其他鱼油的问题什么的,有的加了,有的没加,这个括号是加还是不加,还是看自己心情?加与不加有什么区别吗?

继承父类需要加括号,这个我知道,但是有时候括号里是空的呀,啥都没有!


最佳答案
2020-6-20 23:24:13
本帖最后由 wuqramy 于 2020-6-20 23:42 编辑

可以不加,也可以加
为了省事,我不会加
除了一个情况,就是继承类的时候
括号里就要填父类名
还有在实例化类时候,要记得给类名带上括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-20 23:23:11 | 显示全部楼层
不用纠结了,括号里面啥都没有,应该是可以不加的,按照Python的特性,要加也行,毕竟有强迫症的程序员,不能不许他们使用python。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 23:24:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 wuqramy 于 2020-6-20 23:42 编辑

可以不加,也可以加
为了省事,我不会加
除了一个情况,就是继承类的时候
括号里就要填父类名
还有在实例化类时候,要记得给类名带上括号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 23:40:32 | 显示全部楼层


准确的说定义类时候如果不继承,那么加和不加都是一样的,默认继承 object 类

但是要注意的是:实例化类时候,要记得带上括号,否则就是给这个类取了个别名,而加上括号才算实例化对象了

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-21 08:01:43 | 显示全部楼层
class A:
等于
class A():
等于
class A(object):
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-21 09:51:56 | 显示全部楼层
本帖最后由 heidern0612 于 2020-6-21 09:57 编辑

楼上几位大佬回的都差不多了,我再啰嗦几句。

类加括号是经典类,不加括号是新式类。

在python2中,经典类继承模式是深度优先,而新式类采用的是广度继承,这就导致继承的MRO顺序会不同。

而在python3中,经典类和继承类都是沿用的广度优先继承,所以基本没什么区别了。

现在沿用的大致就是python默认规定的,不加括号采用新式类,你想加也没问题。

具体可以参考下这个:戳我前进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-21 09:53:37 | 显示全部楼层
heidern0612 发表于 2020-6-21 09:51
加括号是经典类,不加括号是新式类。

在python2中,经典类继承模式是深度优先,而新式类是广度优先继承 ...


哦,还有这个说法,厉害了大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 13:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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