news 2026/4/3 3:39:22

8.3 类的详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
8.3 类的详解

文章目录

  • 前言
  • 一、Python中类的定义
  • 二、类的命名
  • 三、类的构造函数
  • 四、定义类的方法(函数)
  • 五、类的继承

前言

本文主要介绍Python中类的定义、类的命名、类的构造函数、定义类的方法以及类的继承等知识点。


一、Python中类的定义

在Python中,类是通过class关键字定义的,用于创建具有相同属性和方法的对象。

python# 基本语法class类名:# 类的内容pass# 示例:定义一个简单的类classDog:pass

二、类的命名

类名通常遵循大驼峰命名法(PascalCase):

  1. 每个单词的首字母大写
  2. 不使用下划线
  3. 应该具有描述性,明确表示类的用途
python# 正确的类名示例classStudent:passclassBankAccount:passclassShoppingCart:pass# 不推荐的类名classstudent:# 应首字母大写passclassSTUDENT:# 不应全部大写passclassstudent_info:# 应使用大驼峰,而不是下划线pass

三、类的构造函数

构造函数__init__()是一个特殊方法,在创建类的新实例时自动调用:

  1. 用于初始化对象的属性
  2. 第一个参数必须是self(指向实例本身)
  3. self参数不需要手动传递,Python会自动处理
pythonclassStudent:# 构造函数def__init__(self,name,age,student_id):# 初始化实例属性self.name=name self.age=age self.student_id=student_id self.grades=[]# 可以设置默认值# 另一个示例:带默认参数的构造函数def__init__(self,name,age,student_id=None):self.name=name self.age=age self.student_id=student_idorf"STU{abs(hash(name))%10000:04d}"# 创建对象student1=Student("张三",20,"S001")student2=Student("李四",21)# student_id使用默认值

四、定义类的方法(函数)

类方法是定义在类中的函数,第一个参数通常是self:

pythonclassBankAccount:# 构造函数def__init__(self,account_holder,initial_balance=0):self.account_holder=account_holder self.balance=initial_balance self.transactions=[]# 实例方法defdeposit(self,amount):"""存款方法"""ifamount>0:self.balance+=amount self.transactions.append(f"存款: +{amount}")returnf"存款成功!当前余额:{self.balance}"else:return"存款金额必须大于0"defwithdraw(self,amount):"""取款方法"""if0<amount<=self.balance:self.balance-=amount self.transactions.append(f"取款: -{amount}")returnf"取款成功!当前余额:{self.balance}"else:return"取款失败:余额不足或金额无效"defget_balance(self):"""获取余额"""returnself.balancedefget_transaction_history(self):"""获取交易历史"""returnself.transactions# 特殊方法:字符串表示def__str__(self):returnf"账户持有人:{self.account_holder}, 余额:{self.balance}"# 使用类account=BankAccount("王五",1000)print(account.deposit(500))# 存款成功!当前余额: 1500print(account.withdraw(200))# 取款成功!当前余额: 1300print(account)# 账户持有人: 王五, 余额: 1300

五、类的继承

  1. 继承允许一个类(子类)继承另一个类(父类)的属性和方法:
python# 父类(基类)classAnimal:def__init__(self,name,age):self.name=name self.age=agedefeat(self):returnf"{self.name}正在吃东西"defsleep(self):returnf"{self.name}正在睡觉"defmake_sound(self):return"动物发出声音"# 子类(派生类)继承父类classDog(Animal):def__init__(self,name,age,breed):# 调用父类的构造函数super().__init__(name,age)# 添加子类特有的属性self.breed=breed# 重写父类方法defmake_sound(self):returnf"{self.name}汪汪叫"# 添加子类特有的方法deffetch(self):returnf"{self.name}正在接飞盘"classCat(Animal):def__init__(self,name,age,color):super().__init__(name,age)self.color=colordefmake_sound(self):returnf"{self.name}喵喵叫"defclimb(self):returnf"{self.name}正在爬树"# 多继承示例classFlyable:deffly(self):return"飞行动物在空中飞翔"classSwimmable:defswim(self):return"水生动物在水中游泳"# 多重继承classDuck(Animal,Flyable,Swimmable):def__init__(self,name,age):Animal.__init__(self,name,age)defmake_sound(self):returnf"{self.name}嘎嘎叫"# 使用继承dog=Dog("旺财",3,"金毛")print(dog.eat())# 继承自Animal类print(dog.make_sound())# 重写后的方法print(dog.fetch())# Dog类特有的方法cat=Cat("咪咪",2,"白色")print(cat.sleep())# 继承自Animal类print(cat.climb())# Cat类特有的方法duck=Duck("唐纳德",1)print(duck.fly())# 继承自Flyable类print(duck.swim())# 继承自Swimmable类print(duck.make_sound())# 重写后的方法# 类型检查print(isinstance(dog,Animal))# Trueprint(isinstance(dog,Dog))# Trueprint(issubclass(Dog,Animal))# True
  1. 方法重写和super()函数
pythonclassVehicle:def__init__(self,brand,model):self.brand=brand self.model=modeldefstart(self):return"车辆启动"definfo(self):returnf"品牌:{self.brand}, 型号:{self.model}"classElectricCar(Vehicle):def__init__(self,brand,model,battery_capacity):# 使用super()调用父类方法super().__init__(brand,model)self.battery_capacity=battery_capacity# 扩展父类方法而不是完全重写definfo(self):# 先获取父类的info结果,再添加子类信息parent_info=super().info()returnf"{parent_info}, 电池容量:{self.battery_capacity}kWh"# 添加子类特有方法defcharge(self):return"电动车正在充电"# 使用tesla=ElectricCar("Tesla","Model 3",75)print(tesla.start())# 车辆启动(继承自Vehicle)print(tesla.info())# 品牌: Tesla, 型号: Model 3, 电池容量: 75 kWhprint(tesla.charge())# 电动车正在充电

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 3:04:09

德诺超声波焊接机怎么选购才保证品质与性价比?

在选购超声波焊接机时&#xff0c;了解设备的核心原理与应用领域是至关重要的。超声波焊接机利用高频声波实现材料之间的强力连接&#xff0c;尤其适用于金属和塑料件的焊接。设备的性能包括稳定性、耐久性和维护服务&#xff0c;这些都是评估时的关键因素。此外&#xff0c;基…

作者头像 李华
网站建设 2026/3/28 13:31:38

深度测评9个AI论文工具,专科生轻松搞定毕业论文!

深度测评9个AI论文工具&#xff0c;专科生轻松搞定毕业论文&#xff01; AI 工具如何助力专科生轻松应对论文写作 随着 AI 技术的不断进步&#xff0c;越来越多的工具被应用于学术写作领域。对于专科生来说&#xff0c;毕业论文的撰写往往是一个充满挑战的过程&#xff0c;尤其…

作者头像 李华
网站建设 2026/3/25 18:49:54

智能降重与高效创作功能对比:8款AI论文写作工具评测

AI论文辅助工具在功能上呈现多样化趋势&#xff0c;实测表明Grammarly和QuillBot能有效解决文本降重与规避AIGC检测的核心需求&#xff0c;Paperpal和Writefull则在学术语言优化方面表现优异。Scite.ai凭借文献引用溯源功能建立差异化优势&#xff0c;Hemingway Editor专注于提…

作者头像 李华
网站建设 2026/4/2 0:44:54

基于FPGA的图像去雾算法:完整的仿真测试与高质量Matlab代码

FPGA图像去雾算法 基于FPGA的图像去雾算法&#xff0c;提供完整的仿真测试和matlab生成显示图片的代码&#xff0c;代码质量保证最近在捣鼓FPGA图像处理的项目&#xff0c;发现用硬件加速搞图像去雾真是比纯软件方案带劲多了。今天就跟大伙唠唠怎么在FPGA上实现暗通道先验去雾算…

作者头像 李华
网站建设 2026/3/30 23:28:04

跨年夜武侠风拉满!周小飞林子祥共创《咏春》舞台名场面

辞旧迎新的璀璨灯火中&#xff0c;2026东方卫视跨年晚会迎来一场传统与潮流碰撞的高光时刻。国家武英级运动员、影武堂特训营讲师周小飞&#xff0c;携手“铁肺歌王”林子祥献上跨界合作舞台《咏春》&#xff0c;以刚劲洒脱的武术功底与默契十足的艺术配合&#xff0c;为全国观…

作者头像 李华