Python中的面向对象编程通过类和对象组织代码,核心包括封装、继承与多态。类是创建对象的模板,使用class定义,__init__()为构造方法,self指向实例。属性分实例属性(每个对象独立)和类属性(所有实例共享),方法含实例方法、类方法(@classmethod修饰,操作类)和静态方法(@staticmethod修饰,无默认参数)。封装通过下划线约定实现,_attr为受保护,__attr为私有;继承允许子类复用父类属性和方法,支持重写与多层继承;多态使不同类对同一方法调用产生不同响应,体现“鸭子类型”。特殊方法(魔术方法)如__str__、__repr__、__len__、__eq__等用于定制对象行为,提升可读性与功能性。掌握这些概念可写出结构清晰、易于维护的代码。
Python中的面向对象编程(OOP)是一种程序设计方式,通过“类”和“对象”来组织代码,提升复用性和可维护性。核心思想是将数据和操作数据的方法封装在一起。以下是基础内容的系统整理。
类(Class) 是创建对象的模板,定义了对象的属性和方法。对象(Object) 是类的具体实例。
定义类使用class 关键字:class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, I'm {self.name}, {self.age} years old.")
创建对象
p1 = Person("Alice", 25)
p1.greet() # 输出: Hello, I'm Alice, 25 years old.
__init__() 是构造方法,用于初始化对象属性。self 指向当前实例,必须作为第一个参数。属性和方法
类中包含属性(数据)和方法(函数)。
self.属性名 定义,每个对象独立拥有self,操作实例数据@classmethod 装饰,第一个参数为 cls,操作类本身@staticmethod 装饰,无默认参数,逻辑上相关但不依赖实例或类示例:
class Dog:
species = "Canis lupus" # 类属性
def __init__(self, name):
self.name = name # 实例属性
@classmethod
def info(cls):
print(f"Species: {cls.species}")
@staticmethod
def bark():
print("Woof!")d = Dog("Buddy")
d.info() # Species: Canis lupus
Dog.bark() # Woof!
封装、继承与多态
这是面向对象三大特性。
封装:隐藏内部实现细节,通过访问控制保护数据。Python 中以下划线约定访问级别:_attr:受保护成员(建议内部使用)__attr:私有成员(名称改写,外部难访问)实际仍可访问,但体现设计意图。
继承:子类继承父类的属性和方法,实现代码复用。
class Animal:
def speak(self):
pass
class Cat(Animal):
def speak(self):
print("Meow")
c = Cat()
c.speak() # Meow
子类可重写父类方法,也支持多层继承。多态:不同类的对象对同一方法调用做出不同响应。
def make_sound(animal):
animal.speak()
make_sound(Cat()) # Meow
make_sound(Dog()) # 需要实现 speak 方法
只要对象有 speak 方法,就能传入,体现“鸭子类型”。以双下划线开头和结尾的方法,用于定制类的行为。
__str__():返回对象的可读字符串表示,print() 时调用__
repr__():返回对象的精确字符串表示,用于调试__len__():定义 len(obj) 的行为__eq__()、__lt__() 等:定义比较操作示例:
class Book:
def __init__(self, title):
self.title = title
def __str__(self):
return f"Book: {self.title}"
b = Book("Python Basics")
print(b) # Book: Python Basics
基本上就这些。掌握类定义、实例化、三大特性和常用魔术方法,就能写出结构清晰的面向对象代码。
# python
# 面向对象编程
# 代码复用
# speak
# asic
相关文章:
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何通过VPS建站实现广告与增值服务盈利?
建站主机是什么?如何选择适合的建站主机?
高防服务器如何保障网站安全无虞?
宝塔新建站点报错如何解决?
威客平台建站流程解析:高效搭建教程与设计优化方案
如何通过二级域名建站提升品牌影响力?
如何选择适配移动端的WAP自助建站平台?
定制建站是什么?如何实现个性化需求?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
利用JavaScript实现拖拽改变元素大小
魔方云NAT建站如何实现端口转发?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何在IIS7上新建站点并设置安全权限?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
大连网站设计制作招聘信息,大连投诉网站有哪些?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
音响网站制作视频教程,隆霸音响官方网站?
如何在建站主机中优化服务器配置?
宝塔面板创建网站无法访问?如何快速排查修复?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
建站之星免费版是否永久可用?
七夕网站制作视频,七夕大促活动怎么报名?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
如何在建站宝盒中设置产品搜索功能?
如何彻底删除建站之星生成的Banner?
网站专业制作公司有哪些,做一个公司网站要多少钱?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
网站制作大概多少钱一个,做一个平台网站大概多少钱?
*服务器网站为何频现安全漏洞?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
如何制作算命网站,怎么注册算命网站?
实例解析angularjs的filter过滤器
如何快速搭建FTP站点实现文件共享?
如何快速生成专业多端适配建站电话?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
高端企业智能建站程序:SEO优化与响应式模板定制开发
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
孙琪峥织梦建站教程如何优化数据库安全?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
存储型VPS适合搭建中小型网站吗?
如何通过西部建站助手安装IIS服务器?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
如何选购建站域名与空间?自助平台全解析
三星网站视频制作教程下载,三星w23网页如何全屏?
高防服务器:AI智能防御DDoS攻击与数据安全保障
北京企业网站设计制作公司,北京铁路集团官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。