Python类与对象基础_实例化与属性解析【教程】

10次阅读

Python 中类是对象模板,实例化生成独立对象并分配内存;实例属性属单个对象,类属性被所有实例共享;点号或 getattr/setattr 访问属性;self 是实例方法必含的隐式参数。

Python 类与对象基础_实例化与属性解析【教程】

Python 中,类是创建对象的模板,对象是类的具体实例。实例化就是用类生成一个对象的过程,而属性则是对象所拥有的数据或行为特征。

类定义与实例化:从模板到具体对象

定义类使用 class 关键字,类名通常大驼峰命名;实例化就是调用类名加括号,像函数一样执行,返回一个新对象。

  • 类本身不占用内存空间,只有实例化后才分配内存并生成真实对象
  • 每次实例化都会创建独立的对象,彼此属性互不影响
  • 如果类中定义了 __init__ 方法,它会在实例化时自动调用,用于初始化对象状态

实例属性 vs 类属性:作用域 和生命周期不同

实例属性属于某个具体对象,在 __init__ 中通过 self.xxx = value 定义;类属性属于类本身,在类体中直接定义,所有实例共享同一份值。

  • 修改实例属性只影响当前对象;修改类属性会影响所有未覆盖该属性的实例
  • 若在实例上赋值同名属性(如 obj.name = ‘new’),会新建实例属性,遮蔽类属性
  • 推荐把不变的配置、常量设为类属性,把每个对象独有的状态设为实例属性

访问与动态设置属性:点号操作与内置函数

最常用的是用点号(.)读写属性,如 obj.age = 25print(obj.name);也可用 getattr()setattr()hasattr() 等函数安全操作。

立即学习Python 免费学习笔记(深入)”;

  • 点号访问简洁直观,但属性名必须是已知的合法标识符
  • 函数方式适合属性名来自变量、配置或用户输入等动态场景
  • 尝试访问不存在的属性会触发 AttributeError,可用 getattr(obj, ‘key’, default) 提供默认值避免报错

理解 self:指向当前实例的隐式参数

self 是实例方法的第一个形参,Python 自动传入调用该方法的对象本身。它不是关键字,但约定俗成必须叫 self,且必须显式写出。

  • 在类内部,所有实例属性和方法都通过 self.xxx 访问,否则会被当作局部变量处理
  • 定义方法时写了 self,调用时不用传 —— Python 自动补上
  • 误删 self 会导致“缺少参数”错误;误写成其他名字虽不报错,但违背规范且易引发混淆
星耀云
版权声明:本站原创文章,由 星耀云 2026-01-01发表,共计948字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources