类到底需不需要加括号?
定义一个类:class 类名:(类名第一个字母要大写)但是类名后面需不需要加括号呢?
比如:class A:和class A():
我看课后题或者其他鱼油的问题什么的,有的加了,有的没加,这个括号是加还是不加,还是看自己心情?加与不加有什么区别吗?
继承父类需要加括号,这个我知道,但是有时候括号里是空的呀,啥都没有!
不用纠结了,括号里面啥都没有,应该是可以不加的,按照Python的特性,要加也行,毕竟有强迫症的程序员,不能不许他们使用python。。。 本帖最后由 wuqramy 于 2020-6-20 23:42 编辑
可以不加,也可以加
为了省事,我不会加
除了一个情况,就是继承类的时候
括号里就要填父类名
还有在实例化类时候,要记得给类名带上括号
准确的说定义类时候如果不继承,那么加和不加都是一样的,默认继承 object 类
但是要注意的是:实例化类时候,要记得带上括号,否则就是给这个类取了个别名,而加上括号才算实例化对象了
class A:
等于
class A():
等于
class A(object): 本帖最后由 heidern0612 于 2020-6-21 09:57 编辑
楼上几位大佬回的都差不多了,我再啰嗦几句。
类加括号是经典类,不加括号是新式类。
在python2中,经典类继承模式是深度优先,而新式类采用的是广度继承,这就导致继承的MRO顺序会不同。
而在python3中,经典类和继承类都是沿用的广度优先继承,所以基本没什么区别了。
现在沿用的大致就是python默认规定的,不加括号采用新式类,你想加也没问题。
具体可以参考下这个:戳我前进 heidern0612 发表于 2020-6-21 09:51
加括号是经典类,不加括号是新式类。
在python2中,经典类继承模式是深度优先,而新式类是广度优先继承 ...
哦,还有这个说法,厉害了大佬
页:
[1]