第十四章[面向对象]:14.5:访问限制/属性

本文详细探讨了Python面向对象编程中的访问限制,包括动态添加属性和方法、禁止动态添加、防止外部访问内部实例属性、使用property()函数以及属性装饰器定义属性。通过示例展示了如何创建私有属性、getter和setter方法,以及如何利用@property简化属性定义并实现只读和可读写属性。
摘要由CSDN通过智能技术生成

一,动态添加属性/方法

1,动态添加实例属性和实例方法

from types import MethodType


class Student:
    pass


s = Student()

# 动态添加属性
s.name = 'Tom'
print(s.name)
print(s.__dict__)


# 定义一个函数作为实例方法
def set_age(self, age):
    self.age = age


# 动态添加方法
s.set_age = MethodType(set_age, s)
s.set_age(4)
print(s.age)
print(s.__dict__)

运行结果:

Tom
{'name': 'Tom'}
4
{'name': 'Tom', 'set_age': <bound method set_age of <__main__.Student object at 0x101fd59a0>>, 'age': 4}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老刘你真牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值