21番茄网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 21番茄网
查看: 4|回复: 0

类名称的括号里可以有多少个参数,这些参数的位置是固定的吗,有没有什么要求或讲究?

[复制链接]

724

主题

946

帖子

3134

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3134
发表于 昨天 08:46 | 显示全部楼层 |阅读模式
在 Python 中,类名称后面的括号 () 用于指定父类(也叫基类),这是实现继承的语法。比如 class 子类(父类): 表示子类继承了父类的功能。
1. 括号里可以有多少个参数?
括号里的参数数量没有固定限制,既可以是空(不继承任何类),也可以有多个父类(称为 “多继承”)。
  • 空括号:class A(): 或 class A:(两种写法等价),表示这个类不继承任何父类(默认继承 Python 自带的 object 类)。
  • 单个父类:class 小狗(动物): 表示 “小狗” 类继承 “动物” 类的功能。
  • 多个父类:class 混血猫(波斯猫, 布偶猫): 表示同时继承多个父类的功能(多继承)。

2. 这些参数的位置是固定的吗?
位置非常重要!当多个父类有同名方法或属性时,Python 会按照括号里的顺序来查找(称为 “方法解析顺序”)。
举例:
class 爸爸:
    def 做饭(self):
        print("做中餐")

class 妈妈:
    def 做饭(self):
        print("做西餐")

# 继承顺序:先爸爸,后妈妈
class 孩子(爸爸, 妈妈):
    pass

孩子().做饭()  # 输出:做中餐(优先用爸爸的方法)


如果把顺序换成 class 孩子(妈妈, 爸爸):,调用 做饭() 会输出 “做西餐”。


3. 有什么要求或讲究?
  • 必须是类名:括号里只能放已经定义好的类,不能放普通变量或数值。
  • 多继承慎用:虽然支持多继承,但如果父类之间关系复杂,容易出现 “菱形问题”(多个父类最终继承自同一个祖先),导致逻辑混乱。实际开发中尽量避免过度使用多继承。
  • 默认继承 object:如果括号为空,Python 会默认让这个类继承 object 类(Python 中所有类的 “祖先”),所以 class A: 和 class A(object): 效果一样(Python 3 中)。

总结:
      类括号里的参数是父类列表,数量可多可少(0 到多个),但位置会影响继承时的优先级,且只能放类名。实际使用中,单继承最常用,多继承需谨慎设计。





上一篇:python中,class类和def函数有什么区别,用通俗易懂的类比方法来解释
下一篇:类的下面是一定要有def函数吗
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|21番茄网 ( 粤ICP备10099428号 ) 奇远富

GMT+8, 2025-8-7 07:24 , Processed in 0.166393 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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