鱼C论坛

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

创建类名需要加括号吗

[复制链接]
发表于 2023-6-14 08:48:08 | 显示全部楼层 |阅读模式

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

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

x
如题,请教各位小伙伴,创建类名需要加括号吗?我看小甲鱼的视频,有的有加有的没有加,所以不太明白什么情况下不需要加 1686703661044.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-14 08:54:35 | 显示全部楼层
在Python中,创建类名的时候是否需要加括号取决于你的需求。

·  class A:  这是创建一个没有继承任何类的基础类,它会自动继承Python的基类  object 。 这是最简单的类定义。

·  class B(A):  这是创建一个新的类B,并且B类继承了A类。在这种情况下,我们必须在B类名后面的括号中指定它所继承的类。

·  class A():  这种定义方式和 class A: 基本上是一样的,都是创建一个没有继承任何类的基础类。尽管有括号,但括号内并没有指定任何类,所以这是一个空的基类定义。这种方式相对少用,因为看起来可能会让人误以为A类是在继承某个未指定的类。

·  class A(object):  这是明确指出A类继承自基类  object  的定义方式。这在Python 2中是常见的做法,因为Python 2需要明确指出类继承自  object  才能成为新式类,拥有如继承、属性等新特性。但在Python 3中,所有的类默认都是新式类,因此这种写法在Python 3中并非必需,而且有点过时。如果你使用的是Python 3,那么 class A:  和  class A(object):  在功能上是完全一样的。

总的来说,在Python 3中创建类名的时候,除非你需要继承某个特定的类,否则通常不需要加括号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-6-14 09:00:03 | 显示全部楼层
有基类就加,没有可不加。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-14 15:36:19 | 显示全部楼层
isdkz 发表于 2023-6-14 08:54
在Python中,创建类名的时候是否需要加括号取决于你的需求。

·  class A:  这是创建一个没有继承任何类 ...

好的 明白了,感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-14 15:38:33 | 显示全部楼层
suchocolate 发表于 2023-6-14 09:00
有基类就加,没有可不加。

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

使用道具 举报

发表于 2023-6-14 16:36:52 | 显示全部楼层
在 Python 中,定义一个类时,如果没有继承其他类,则可以省略括号。例如:
class MyClass:
    pass

在这个例子中,类名为 `MyClass`,它没有继承其他类,因此可以省略括号。

如果有继承关系,则必须加上括号,并在括号中指定基类(父类)。例如:

class MySubClass(MyClass):
    pass

在这个例子中,`MySubClass` 是从 `MyClass` 派生出来的子类,因此在定义 `MySubClass` 时必须加上括号,并在括号中指定 `MyClass` 作为基类。

总之,是否加括号取决于你是否需要使用父类的属性或方法,如果是从父类继承而来的,则需要加括号,并在其中指定父类。如果不需要使用父类的属性或方法,或者不继承任何类,则可以省略括号。

给我设置最佳答案呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-15 14:35:00 | 显示全部楼层
无继承就不加
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 19:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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