Python入门第四篇:面向对象编程 面向对象编程OOP是Python的核心编程范式。通过类和对象程序可以更自然地模拟现实世界的事物提高代码的可重用性和可维护性。一、类与对象的基本概念类是创建对象的蓝图描述了对象的数据属性和行为方法。对象是类的具体实例。pythonclass Student: 学生类 # 类变量所有实例共享 school 北京大学 # 构造方法初始化实例时自动调用 def __init__(self, name, age, grade): # 实例变量每个实例独立 self.name name self.age age self.grade grade # 实例方法 def introduce(self): print(f我叫{self.name}{self.age}岁来自{self.school}) def study(self, hours): print(f{self.name}学习了{hours}小时)__init__是初始化方法self指向当前实例。创建对象时调用pythonalice Student(Alice, 18, 高三) alice.introduce() # 我叫Alice18岁来自北京大学 alice.study(3) # Alice学习了3小时二、属性访问与控制2.1 修改与查看属性python# 访问属性 print(alice.name) # 修改属性 alice.age 19 print(alice.age) # 添加新属性动态语言特性不推荐滥用 alice.hobby 篮球2.2 类变量与实例变量类变量由所有实例共享实例变量属于单个实例pythonclass Dog: species Canis familiaris # 类变量 def __init__(self, name): self.name name # 实例变量 dog1 Dog(旺财) dog2 Dog(小黑) print(dog1.species) # Canis familiaris print(dog2.species) # Canis familiaris Dog.species 犬科 # 修改类变量影响所有实例 print(dog1.species) # 犬科2.3 类方法与静态方法pythonclass Calculator: classmethod def get_info(cls): 类方法接收类本身作为第一个参数 return f计算器类{cls.__name__} staticmethod def add(a, b): 静态方法不需要self或cls return a b print(Calculator.get_info()) # 计算器类Calculator print(Calculator.add(3, 5)) # 8三、继承与多态继承允许子类重用父类的属性和方法并可以扩展或覆盖它们。pythonclass Animal: def __init__(self, name): self.name name def speak(self): return 动物叫声 class Cat(Animal): def speak(self): return 喵喵喵 # 覆盖父类方法 class Dog(Animal): def speak(self): return 汪汪汪 class Cow(Animal): pass # 未覆盖使用父类方法 animals [Cat(小花), Dog(旺财), Cow(老黄)] for animal in animals: print(f{animal.name}: {animal.speak()}) # 输出 # 小花: 喵喵喵 # 旺财: 汪汪汪 # 老黄: 动物叫声super()调用父类方法pythonclass Employee: def __init__(self, name, salary): self.name name self.salary salary class Manager(Employee): def __init__(self, name, salary, department): super().__init__(name, salary) # 调用父类的__init__ self.department department四、特殊方法魔法方法Python类中有许多以双下划线开头和结尾的特殊方法定义了类的行为。pythonclass Vector: def __init__(self, x, y): self.x x self.y y def __str__(self): str()调用面向用户 return fVector({self.x}, {self.y}) def __repr__(self): repr()调用面向开发者 return fVector({self.x}, {self.y}) def __add__(self, other): 运算符 return Vector(self.x other.x, self.y other.y) def __eq__(self, other): 运算符 return self.x other.x and self.y other.y def __len__(self): len()调用 return 2 v1 Vector(1, 2) v2 Vector(3, 4) v3 v1 v2 print(v3) # Vector(4, 6) print(len(v3)) # 2 print(v1 v2) # False其他常用的特殊方法__lt__、__getitem__[]访问、__iter__迭代器、__call__对象作为函数调用。五、封装与属性装饰器Python通过命名约定和property装饰器实现封装。pythonclass Person: def __init__(self, name, age): self._name name # 下划线表示受保护的 self.__age age # 双下划线会被名称修饰避免子类冲突 property def age(self): 只读属性 return self.__age age.setter def age(self, value): 属性设置器添加验证 if value 0: raise ValueError(年龄不能为负数) self.__age valueproperty将方法变为属性访问隐藏了内部实现细节。六、小结本篇介绍了面向对象编程的核心概念类与对象、继承与多态、特殊方法和属性控制。OOP是组织大型程序的重要思想它将数据和操作数据的代码封装在一起提高了代码的模块化程度。下一篇将介绍Python的迭代器、生成器和装饰器。

相关新闻

最新新闻

Windows 10 下使用预编译文件安装 CAFFE

Windows 10 下使用预编译文件安装 CAFFE

GitHub link https://github.com/Ruheng-He/Caffe_Windows_10 环境Windows 10Python 3.5.4下载预编译文件 CAFFE 仓库 https://github.com/BVLC/caffe/tree/windows 上述仓库的 READMD.md 里的链接已失效,在某个 issue 中找到可用链接。https://github.com/BVLC/caf…

2026/8/5 17:38:30
数据分析师全栈技能实战指南:从Excel到AB实验的完整学习路径

数据分析师全栈技能实战指南:从Excel到AB实验的完整学习路径

1. 数据分析师零基础转行全栈实战指南最近几年,数据分析岗位持续火热,无论是传统行业数字化转型,还是互联网公司的精细化运营,都离不开数据分析师的支持。很多朋友想转行,但面对Excel、SQL、Python、Power BI等一堆工具…

2026/8/5 17:38:30
B站下载神器BiliTools:跨平台B站资源下载完整解决方案

B站下载神器BiliTools:跨平台B站资源下载完整解决方案

B站下载神器BiliTools:跨平台B站资源下载完整解决方案 【免费下载链接】BiliTools 本项目已停止维护。 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 还在为B站视频无法离线观看而烦恼吗?想要保存喜欢的UP主作品、收藏的番剧系…

2026/8/5 17:38:30
构建金融市场的语言模型:Kronos如何将AI技术引入量化交易决策

构建金融市场的语言模型:Kronos如何将AI技术引入量化交易决策

构建金融市场的语言模型:Kronos如何将AI技术引入量化交易决策 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 在传统金融预测领域,…

2026/8/5 17:38:30
突破边缘设备语音合成瓶颈:DOTS-TTS-MLX-INT4架构深度解析

突破边缘设备语音合成瓶颈:DOTS-TTS-MLX-INT4架构深度解析

突破边缘设备语音合成瓶颈:DOTS-TTS-MLX-INT4架构深度解析 【免费下载链接】dots-tts-mlx-int4 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/dots-tts-mlx-int4 在移动设备和边缘计算场景中,传统文本转语音模型面临怎样的性能瓶…

2026/8/5 17:38:30
23 种设计模式(GoF)代码示例说明

23 种设计模式(GoF)代码示例说明

本项目在 com.example.design 包下实现了 GoF 经典 23 种设计模式,每个模式一个独立包, 每个包内含一个可独立运行的 XxxDemo.java(带 main 方法),代码中均有详细注释。 运行方式:直接在 IDEA 中运行任意 …

2026/8/5 17:33:30