Python3.7 类属性与实例属性详解
73 浏览量
更新于2024-08-31
收藏 49KB PDF 举报
"本文主要介绍了Python3.7中的类属性和实例属性,包括它们的定义、特点以及如何访问和修改这些属性。"
在Python中,类是一种创建对象的蓝图,它包含了一些数据(属性)和行为(方法)。类属性和实例属性是类中的两种重要属性类型,它们有着不同的特性和使用场景。
一、类属性和实例属性的划分
1. 类属性:类属性是在类定义中,但在任何方法之外定义的变量。它们属于类本身,而不是类的任何特定实例。所有实例共享同一个类属性的值。
```python
class Person:
name = '小张'
age = 24
```
在这个例子中,`name` 和 `age` 是类属性。无论创建多少个 `Person` 的实例,它们都共享相同的 `name` 和 `age` 值。
2. 实例属性:实例属性是在类的方法中,通过 `self.变量名` 定义的变量。每个实例都有自己的实例属性副本,不与其他实例共享。
```python
class Person:
def __init__(self):
self.name = '小张' # 实例属性
```
3. 局部变量:在方法内部以 `变量名 = 变量值` 形式定义的变量,只存在于该方法的作用域内,不会影响类或实例的属性。
二、类属性的特点
类属性的特点是所有实例化的对象都共享相同的变量。这意味着,如果你通过类名来修改类属性,所有实例的对应属性都会改变:
```python
class Person:
name = '小张'
age = 24
p1 = Person()
p2 = Person()
print(p1.name) # 输出 '小张'
print(p2.name) # 输出 '小张'
Person.name = 'Jack'
print(p1.name) # 输出 'Jack'
print(p2.name) # 输出 'Jack'
```
三、访问和修改类属性
1. 通过类名访问和修改类属性:
```python
print(Person.name) # 输出类属性的值
Person.name = '新的名称' # 修改类属性的值
```
2. 通过实例对象访问类属性:
```python
print(p1.name) # 输出实例对象的类属性值
```
3. 修改类属性的值会影响所有实例对象,因为它们共享同一个类属性:
```python
p1.name = '小明' # 这实际上创建了一个新的实例属性 'name',覆盖了类属性
print(p1.name) # 输出 '小明'
print(Person.name) # 输出 '新的名称',类属性未变
```
总结来说,类属性是属于类的,所有实例都可以访问,但修改类属性会影响到所有实例。而实例属性是每个实例独有的,修改一个实例的实例属性不会影响其他实例。理解并掌握类属性和实例属性对于编写面向对象的Python代码至关重要,它们是构建复杂数据结构和实现数据封装的基础。
2020-12-20 上传
2020-12-21 上传
2021-01-20 上传
2021-03-23 上传
2019-05-08 上传
皮卡丘穿皮裤
- 粉丝: 187
- 资源: 955
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析