版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python编程基础项目七
面向对象的程序设计7.2类的属性和方法目录7.2.1类的属性7.2.2类的方法Python编程基础7.2.1类的属性Python编程基础属性:对象的“数据”或“特征”可视化理解:汽车实体与它的特征参数核心定义本质是与类/对象绑定的变量,用于存储数据,描述对象的状态或特征。通俗类比•设计图上的参数(类属性)•实车的具体配置(实例属性)类属性ClassAttribute实例属性InstanceAttribute类属性:所有对象共享的“公共特征”类(顶层)包含属性,所有实例(底层)共享该属性核心定义直接定义在类内部、但在任何方法之外的变量。关键特性•属于类本身,而非特定对象•所有实例共享同一个值形象类比:房子与屋顶“有屋顶”是所有房子的共性,无论盖多少栋房子,都继承这一特征。💡
类属性是类的“全局变量”,由所有对象共享Python类属性:定义与访问万物皆对象
属性共分享类属性定义在类内部、方法外部,属于类本身。它被该类的所有实例对象共享,是所有对象共有的特征描述。classPerson:species="Homosapiens"#定义类属性#访问方式:类名直接访问或实例访问print(Person.species)#输出:Homosapiensprint(Person().species)#输出:Homosapiens💡修改类属性会影响所有实例,修改实例属性则只影响自身修改类属性代码演示classPerson:species="Homosapiens"#实例化两个对象p1=Person()p2=Person()#关键点:通过类名修改属性Person.species="Human"#结果:p1和p2的species都变成了Human核心原理:共享蓝图类属性存储在类对象本身中,就像是工厂的“蓝图”。所有实例化的对象(产品)都共享这份蓝图。当你修改蓝图(类属性),所有已生产和未生产的产品(实例)都会同步更新规格。结论:修改类属性→所有实例同步改变记忆口诀:类属性一变,所有实例跟着变实例属性:每个对象独有的“个性特征”核心定义定义在类的构造方法(通常是__init__)内部,以self.属性名
形式赋值的变量。关键特点属于具体的实例而非类实例间数据独立互不干扰存储对象独有的状态数据生动比喻以“房子”类为例:每一栋房子都有独有的属性,如“红色外墙”、“120平米”、“市中心”等,这些都是每栋房子的个性特征。Python面向对象:定义与访问实例属性Python代码示例classPerson:def__init__(self,name,age):=name#实例属性self.age=agep1=Person("Alice",25)#创建实例p2=Person("Bob",30)print()#输出:Alice构造方法__init__创建实例时自动调用,用于初始化对象状态,接收self及自定义参数。绑定实例属性通过self.属性名=值定义,每个对象拥有独立的数据副本,互不干扰。访问属性使用对象名.属性名的方式获取或修改数据,如获取名字。💡self代表实例本身,每个实例的属性都是独立的。修改实例属性对象的“私有领地”每个实例都拥有独立的属性副本,修改自己的属性,与他人无关。classPerson:...#定义类p1=Person("Alice",25)#创建实例1p2=Person("Bob",30)#创建实例2#修改p1的年龄属性p1.age=26#结果:p1.age=26,p2.age依然是30结论:修改一个实例的属性,只会影响该实例本身,其他实例完全不受影响。类属性vs.实例属性类属性(ClassAttribute)📌定义:类内部,所有方法之外🏷️归属:属于类本身,而非单个对象🤝共享性:所有实例共享同一个值🔧修改影响:修改后所有实例都会受影响🎯用途:存储通用特征、常量、配置项实例属性(InstanceAttribute)📌定义:类的方法内部(通常是__init__)🏷️归属:属于具体的实例(对象)🔒共享性:每个实例拥有独立的副本🔧修改影响:修改后仅该实例受影响🎯用途:存储每个对象的独特状态/数据💡区别:类属性是“共享”的公共资源,实例属性是“独享”的个体资产注意:修改类属性classPerson:species="Homosapiens"p1=Person()p1.species="Human"#陷阱:创建了实例属性#结果:Person.species
依然是"Homosapiens"原理揭秘:Python会在实例上创建同名实例属性,它会“遮蔽”对类属性的访问,导致类属性未被修改。💡不要通过实例去修改类属性!请直接通过类名操作。核心定义:属性是类和对象的“数据”或“特征”,是描述事物状态的关键信息。类属性(Class)属于类,被所有实例共享定义在类内部,方法外部修改它会影响所有实例实例属性(Instance)属于具体实例,每个实例独有定义在方法内部(通常是__init__)修改它只影响自身小结7.2.2类的方法Python编程基础类中的方法030201
实例方法
静态方法
类方法方法是定义在类内部的函数,用于描述类和对象的行为。1、实例方法实例方法作用于具体的对象实例。它的第一个参数必须是self,其代表了调用该方法的具体对象本身。class
BankAccount:
#类属性:所有账户共享
bank_name
=
"PythonBank"
def
__init__(self,owner,balance):
#实例属性:每个账户独有
self.owner
=
owner
self.balance
=
balance
#实例方法:存款
def
deposit(self,amount):
self.balance
+=
amount
print(f"{amount}deposited.Newbalance:{self.balance}")
#使用示例account
=
BankAccount("Alice",1000)
#调用实例方法account.deposit(500)#输出:500deposited.Newbalance:1500示例1:2、类方法类方法作用于整个类,而不是某个实例。它通过@classmethod装饰,并接收cls参数来表示类本身。class
BankAccount:
bank_name
=
"PythonBank"
#类属性
@classmethod
def
change_bank_name(cls,new_name):
cls.bank_name
=
new_name
#调用方式:类名.方法名BankAccount.change_bank_name("GlobalPythonBank")
print(BankAccount.bank_name)
#输出:GlobalPythonBank示例2:3、静态方法静态方法是独立于实例和类的,使用@staticmethod装饰,不需要接收self或cls参数,通常用于封装一些与类相关但不依赖于实例或类的逻辑。class
BankAccount:
bank_name
=
"PythonBank"
#类属性
@staticmethod
def
bank_policy():
print("Ourpolicy:Nohiddenfees!")
#调用静态方法BankAccount.bank_policy()#输出:Ourpolicy:Nohiddenfees!
示例3:类中的方法第一个参数是self,操作对象数据,通过对象.方法()调用。实例方法第一个参数是cls,操作类数据,通过类名.方法()调用。类方法无特殊参数,封装工具逻辑,通过类名.方法()调用。静态方法class
BankAccount:
bank_name
=
"PythonBank"
def
__init__(self,owner,balance):
self.owner
=
owner
self.balance
=
balance
def
deposit(self,amount):
self.balance
+=
amount
print(f"{amount}deposited.Newbalance:{self.balance}")
@classmethod
def
change_bank_name(cls,new_name):
cls.bank_name
=
new_name
@staticmethod
def
bank_policy():
print("Ourpolicy:Nohiddenfees!")
account
=
BankAccount("Alice",1000)
#调用实例方法account.deposit(500)#输出:500deposited.Newbalance:15
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林芝地区察隅县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 北海市铁山港区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 凉山彝族自治州冕宁县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 唐山市滦县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 抚州市乐安县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 大理白族自治州云龙县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 楚雄彝族自治州武定县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 马鞍山市花山区2025-2026学年第二学期五年级语文第五单元测试卷(部编版含答案)
- 拉萨市尼木县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 门店营销策划方案
- (二调)武汉市2026届高中毕业生三月调研考试数学试卷(含答案解析)
- 2026年公选乡镇领导班子成员(副科)试题及答案
- 2025年执业药师考试中药药剂学试题A+B+X型题(及答案)
- 乡镇履职事项清单讲课件
- 关键绩效指标(KPI的开发、实施和应用)
- 浙江省温州市2025-2026年高一上思想政治期末试卷(含答案)
- 深度解析(2026)《NYT 2126-2012 草种质资源保存技术规程》(2026年)深度解析
- 钣金检验制度及流程规范
- 湖中大内科护理学课件:消化性溃疡
- GB/Z 3836.37-2025爆炸性环境第37部分:由二线本质安全以太网概念(2-WISE)保护的设备
- 泥水平衡顶管工程专项施工计划
评论
0/150
提交评论