Python3.7 类属性与实例属性详解
64 浏览量
更新于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 上传
2018-07-23 上传
732 浏览量
346 浏览量
294 浏览量
点击了解资源详情
皮卡丘穿皮裤
- 粉丝: 187
- 资源: 955
最新资源
- 王珊 高等教育出版社 数据库第四版答案
- .net 软件自动化测试之道 pdf (.net平台下自动化测试必备之资料,精!!)
- 基于模糊预测算法的ATO仿真研究
- 3g技术讲解通信工程
- c#各种排序算法大全
- Cognos8.4新增功能优势说明
- JAVA基础面试题部分参考
- 段程序保存为文件名为Test.java的文件
- 影碟出租管理信息系统
- JAVA的学习笔记及开发模式
- Learning Oracle PL-SQL [O'Reilly, 524s, 2001r].pdf
- flash 适合于初学者的程序设计教程
- Visual C++开发工具与调试技巧整理
- 操作系统中的银行家算法
- Redhat Linux 9教学讲义
- RSVP协议端到端QOS控制机制的研究