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

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

off999 2025-07-03 18:49 114 浏览 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#

相关推荐

电脑自带的清理垃圾的工具(电脑自带的清理垃圾的工具叫什么)

CCleaner是一款免费的系统优化和隐私保护工具,它的体积小、扫描速度非常快,支持自定义清理规则,增强了应用程序清理范围和效果。CCleaner是Piriform(梨子公司)最著名广受好评的系统清理...

笔记本电脑用什么下载软件(笔记本电脑用什么下载软件比较好)
  • 笔记本电脑用什么下载软件(笔记本电脑用什么下载软件比较好)
  • 笔记本电脑用什么下载软件(笔记本电脑用什么下载软件比较好)
  • 笔记本电脑用什么下载软件(笔记本电脑用什么下载软件比较好)
  • 笔记本电脑用什么下载软件(笔记本电脑用什么下载软件比较好)
如何设置本地连接

在“控制面板”中,选择“网络和Internet”>“网络和共享中心”。在左侧窗格中,选择“更改适配器设置”。在“网络连接”窗口中,右键单击“本地连接”,然后选择“属性”。在“本地连接...

office2007官方免费版安装包
  • office2007官方免费版安装包
  • office2007官方免费版安装包
  • office2007官方免费版安装包
  • office2007官方免费版安装包
戴尔官网官方网站(戴尔产品官网)

查询步骤如下:1.在戴尔电脑的后盖上找到服务编号,并记录下来。2.之后搜索戴尔官网,在打开的官网界面中点击上方的支持选项,并点击产品支持。3.在打开的产品支持界面中,输入电脑后盖上的服务编号。4.如果...

黑鲨u盘重装系统教程(黑鲨u盘重装系统步骤8)

U盘重装WIn10系统:1、用【u深度u盘启动盘制作工具】制作u盘启动盘,插入电脑usb接口,设置好开机启动项进入u深度主菜单界面,选择“【02】u深度win8pe标准版(新机器)”并回车,2、在u深...

电子邮件免费注册入口(电子邮件在线注册)

1.在网页上搜索maiI163邮箱登录,如果有邮箱账号密码的话就直接输入并点击“登录”,没有的话就点击“立即注册”。2.点击“立即注册”后进入页面,输入信息点击“注册”。3.注册成功后就直接搜索登录。...

win7如何快速启动(windows7如何快速启动)
win7如何快速启动(windows7如何快速启动)

打开操作系统运行:输入"cmd"并点击回车:系统命令提示符自动打开:使用方法直接运行start打开一个新的命令提示符窗口:运行start+文件的绝对存储路径打开对应的文件:运行start+文件夹路径打开对应...

2025-12-29 13:03 off999

怎么升级到win11(怎么升级到win11专业版)

Windows11可以在「开始菜单-设置-Windows更新」中进行手动更新。如果您想主动更新,需先确保您的电脑符合Windows11的最低系统要求。接着,打开「Windows更...

微信好友误删了怎么加回来(微信好友误删了怎么加回来免费)

看到他的评论的话,你可以去你发过的内容里去看看。<br/><br/>好友验证的消息、语音)或者朋友圈内容:<br/>如果你这个朋友喜欢和你在朋友圈聊天的话,你他的手机号也有的话方法添加里输入就可...

access安装包(access安装包怎么安装)
access安装包(access安装包怎么安装)

要下载并安装MicrosoftAccess,可以按照以下步骤进行操作:1.打开您的电脑的浏览器(如谷歌浏览器、火狐浏览器等)。2.在浏览器的搜索栏中输入"下载MicrosoftAccess"。3.从搜索结果中选择适...

2025-12-29 11:51 off999

云骑士装机大师官方网站(云骑士装机大师软件下载)

就是感觉正规吧,还有就是小白那种的比较多,专业店一忽悠就掏钱做系统了。懂装机的哪有花钱去装系统的不靠谱,因为会造成个人信息的泄露。云骑士装机大师是网络装机系统,在网络上能够实现一键装机,非常的简洁方便...

万能钥匙下载免费(安心上网万能钥匙下载免费)

行1.使用手机功能表中自带的浏览器上网,直接搜索需要的软件进行下载安装(下载安卓版本格式为apk)。2.使用电脑下载APK格式的安装包,连接数据线传输至手机,操作手机在应用程序-我的文件中找到安装包,...

500兆宽带用什么路由器(家用路由器什么牌子好 信号强)

1、飞鱼星千兆无线路由器家用2600M双频企业级高速穿墙500M光纤游戏加速VW1900/千兆双频/1900M/大型企业路由器无线500m推荐理由:可以提供企业级别的性能,空旷环境覆盖更广大,...

xp系统怎么卸载软件(xp怎么卸载程序)

1、选中此电脑,点击鼠标右键。2、选择属性点击一下。3、在打开的界面选择控制面板。4、点击程序选项下方的卸载。5、选择要卸载的程序软件,点击鼠标右键。6、点击弹出的选项卸载/更改。7、也可以使用电脑管...

取消回复欢迎 发表评论: