百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

如何理解python中面向对象的类属性和实例属性?

off999 2025-07-03 18:49 100 浏览 0 评论

类属性和实例属性

类属性 就是 给 类对象 中定义的 属性

通常用来记录 与这个类相关 的特征

类属性 不会用于记录 具体对象的特征

类属性的理解:

类属性是与类自身相关联的变量,而不是与类的实例关联。它们通常存储在类对象的命名空间内,并且对所有该类的实例共享。

实例属性的理解

实例属性是与特定类的实例(即对象)关联的变量。每个对象都有其独立的一份实例属性副本,也就是说当创建一个类的不同实例时,这些实例可以拥有不同的属性值。

类属性

实例需求

定义一个工具类

每个工具都有自己的name

需求--知道使用这个类,创建了多少个工具对象

代码

class Tool(object):
    #使用赋值语句定义类属性 记录所有工具对象的数量
    count = 0  #类属性
    def __init__(self,name):
        self.name = name

        #每次调用初始化方法 让类属性的值进行 + 1
        Tool.count += 1

#1、创建工具对象
tool = Tool('斧头')
tool = Tool('锤子')
tool = Tool('水桶')
print(tool.count)

上面的代码 ,类中定义了类属性,每次类实例化的时候,都会对类属性+1。

所以创建对象的时候,调用了三次,这就意味着类的实例化了三次,所以最后输出结果为3;

类属性的特点

1、定义和访问:

  • 类属性是在类定义内部直接声明的,无需创建任何实例即可访问。
  • 定义类属性的方式与定义实例属性相似,但类属性是在类作用域内,例如:
class MyClass:
    class_attribute = "这是一个类属性"

# 直接通过类名访问类属性
print(MyClass.class_attribute)

2、共享性:

    • 所有该类的实例都可以访问到这个类属性,而且同一个类的所有实例共享同一份类属性。
    • 如果通过实例修改了类属性,会影响到该类所有其他实例对该属性的访问结果。

3、与实例属性的区别:

    • 实例属性是每个类实例自己独有的,即每个实例可以有自己的属性值,而类属性是所有实例共有的。
    • 实例属性通常在 __init__ 方法或者其他实例方法中初始化,并且绑定到 self 参数(实例本身)上。

4、实例

class Dog:
    species = "Mammal"  # 这是一个类属性

    def __init__(self, name):
        self.name = name  # 这是一个实例属性

# 创建两个Dog实例
dog1 = Dog("Rex")
dog2 = Dog("Bella")

# 访问类属性
print(dog1.species)  # 输出: Mammal
print(dog2.species)  # 输出: Mammal

# 修改类属性,会影响到所有实例
Dog.species = "Canine"
print(dog1.species)  # 输出: Canine
print(dog2.species)  # 输出: Canine

# 类属性与实例属性并存
print(dog1.name)  # 输出: Rex
print(dog2.name)  # 输出: Bella

实例属性的特点

1、定义和绑定:

  • 实例属性通常在类的 __init__ 方法或其他实例方法中定义并初始化。
  • 绑定实例属性的方式是通过使用 self 关键字,self 是指向当前实例的一个引用,在方法内部访问或修改实例属性时会用到它。
class Dog:
    def __init__(self, name, age):
        self.name = name  # 定义并初始化实例属性name
        self.age = age   # 定义并初始化实例属性age

my_dog = Dog("Rex", 3)
print(my_dog.name)  # 输出: Rex

2、内存分配:

每个实例都有自己独立的内存空间来存储实例属性,因此不同实例间的同名属性互不影响。

3、动态性:

  • Python是一种动态类型语言,可以在实例的生命周期内随时添加、修改或删除实例属性,即使在类定义时没有预先声明这些属性。

4、访问控制:

  • 默认情况下,所有实例属性都是公开的,可以直接读取和修改。如果需要控制访问权限,可以使用特殊方法如 __getattr__, __setattr__ 和 __delattr__ 或者通过私有属性(在属性名前加两个下划线 _ _)实现。

#python#

相关推荐

thinkpad笔记本官网首页(thinkpad官方商城)

官方网站 国内:http://www.thinkworld.com.cn   国内用户只需要访问国内即可。  ThinkPad,中文名为“思考本”,在2005年以前是IBMPC事业部旗下的便携式计算机...

win7什么版本最好用(win7哪个版本最稳定流畅)

Windows7旗舰版,最好,最稳定。Windows7,是由微软公司(Microsoft)开发的操作系统,内核版本号为WindowsNT6.1。Windows7可供选择的版本有:简易版(Sta...

win7自带虚拟光驱怎么使用(win7系统虚拟光驱安装教程)

以DAEMONTools为例,360软件管家里面就有最新版的下.安装后使用方法如下:第一种方法:在虚拟光驱界面中,你先按一下中间工具栏最左边“+”符号的按钮,添加镜像文件(可以一次添加多个),这...

电脑装系统蓝屏(电脑装系统蓝屏重启开不了机)

蓝屏的原因往往集中在不兼容的硬件和驱动程序、有问题的软件、病毒等。解决办法:1、病毒的原因。使用电脑管家杀毒。2、内存的原因。用橡皮擦把内存条的金手指擦拭一下,把氧化层擦掉,确保内存条安装、运行正常。...

u盘安装软件(u盘安装软件到电视)

第一种情况:软件安装包可以直接下载的。在电脑上将软件安装包下载到本地硬盘,然后将下载好软件安装包拷贝到U盘上即可拿到别的电脑上去安装。分可为exe格式的和rar格式,exe格式直接安装,rar格式的解...

microsoft官网账户注册(microsoft 帐户注册)

要创建Microsoft账户,您可以按照以下步骤进行操作:1.打开任意一个支持浏览器的设备,如电脑、手机或平板电脑。2.在浏览器中输入"Microsoft账户注册"或直接访问Mic...

outlookcom官网(outlook online archive auto)
  • outlookcom官网(outlook online archive auto)
  • outlookcom官网(outlook online archive auto)
  • outlookcom官网(outlook online archive auto)
  • outlookcom官网(outlook online archive auto)
显示器闪屏是什么原因(显示器闪屏是哪里坏了)

解决方法:  一、接触不良导致的显示器闪屏  先查看主机和显示器的电源线连接,是否松动,重新插拔一下电源线。  二、信号干扰导致的显示器闪屏  1、连接显示器的电缆线是否没有屏蔽线圈,如果没有防干扰的...

国产linux操作系统(国产linux操作系统有什么版本)

中国对于操作系统的探索其实并不晚。  早在20世纪60年代中期中国就开始操作系统的研发,那时的比尔·盖茨还只是个迷恋计算机的小字辈,南京大学教授孙钟秀、北京大学杨芙清院士等都是我国操作系统的拓荒者...

免费无需排队的云电脑(不需要排队的云电脑)

目前市场上有一些云游戏平台提供无限时长且无需排队的服务。这些平台通常采用先进的云计算技术和高性能服务器,能够提供稳定流畅的游戏体验。用户可以随时登录并畅玩游戏,无需等待排队。这些平台还提供多种游戏选择...

视频播放器下载量排名(2020视频播放器排行榜)
  • 视频播放器下载量排名(2020视频播放器排行榜)
  • 视频播放器下载量排名(2020视频播放器排行榜)
  • 视频播放器下载量排名(2020视频播放器排行榜)
  • 视频播放器下载量排名(2020视频播放器排行榜)
wps官方下载(wps官方下载官网电脑版网址)

具体的步骤如下:1、首先在电脑上打开浏览器,在浏览器中输入“WPS”,找到WPS官方网站。2、接下来进入WPS官方网站中,找到WPS软件,点击“免费下载”。3、点击下载后在弹出来的对话框中修改下载位置...

win vista与win7有什么区别(win7与vista关系)

WindowsVista和Windows7是微软公司推出的两个桌面操作系统,它们之间有以下主要区别:1.界面设计:Windows7的界面设计更加简洁明了,而WindowsVista的界面...

winxp系统版本(winxp 版本)

1、微软官方3个版本:WINDOWSXPHOME(家庭版)、Professional(专业版)、MediaCenter2005(媒体中心版),每个版本的功能不一样。使用最多的是Professional...

打印机无法共享怎么回事(打印机无法共享出去)

共享打印机无法打印原因一:可能是由于病毒死机解决方法:确定是否由于病毒死机,找一张干净(确信无病毒)的系统盘,从A驱动舒上启动电脑,检查此时打印机和主机能否联机。如果正常联机,估计这种故障是由攻击硬件...

取消回复欢迎 发表评论: