引言
python小程序之对象的属性操作
文章目录
- 引言
- 一、对象的属性操作
- 1.1 题目
- 1.2 代码
- 1.3 代码解释
- 二、思考
- 2.1 添加属性
- 2.2 获取属性
一、对象的属性操作
1.1 题目
给对象添加属性
1.2 代码
class Cat:
# 在缩进中书写⽅法
def eat(self):
# self 会⾃动出现,暂不管
print(f'{id(self)}, self')
print(f'⼩猫{self.name}, 爱吃⻥...')
# 2. 创建对象
blue_cat = Cat()
print(f'{id(blue_cat)}, blue_cat')
# 给 蓝猫添加 name 属性
blue_cat.name = '蓝猫'
# 3. 通过对象调⽤类中的⽅法
blue_cat.eat()
# blue_cat 对象调⽤ eat ⽅法, 解释器就会将 blue_cat 对象传给 self
print('_*_' * 30)
# # 创建对象
black_cat = Cat()
black_cat.name = '⿊猫'
print(f"{id(black_cat)}, black_cat")
black_cat.eat()
# black_cat 对象调⽤ eat ⽅法, 解释器就会将 black_cat 对象传给 self
输出结果:
1.3 代码解释
- 在python中,self参数是实例方法的第一个参数,代表当前正在调用该方法的对象
- 当通过一个对象调用方法时,python会自动将这个对象作为第一个参数传递给方法,所以在这个例子中,当blue_cat.eat()被调用时,self参数就是blue_cat对象
- 当black_cat.eat()被调用时,self参数就是black_cat对象
- 输出结果将显示两个不同的内存地址,因为blue_cat和black_cat是两个不同的对象,并且会打印出每个对象的name属性和字符串"爱吃鱼…"
- 此外,还会在两个对象的eat方法调用之间打印一行由_*_组成的分隔线
二、思考
对象的属性操作有添加属性和获取属性两方面
2.1 添加属性
对象.属性名 = 属性值
- 类内部添加
在内部⽅法中, self 是对象,
self.属性名 = 属性值
在类中添加属性⼀般写在 init ⽅法中
- 类外部添加
对象.属性名 = 属性值 (⼀般不使用)
2.2 获取属性
对象.属性名
- 类内部
在内部⽅法中,self 是对象,self.属性名 - 类外部
对象.属性名(⼀般很少使用)