在Python中,属性自省是一种强大的特性,它允许我们在运行时检查和操作对象的属性。在本文中,我们将探讨Python中的属性自省,并结合实际场景和代码来展示其用法。
1. 私有属性与访问限制
Python中的私有属性是指以下划线开头的变量或方法,例如_name或_method()。尽管这种命名约定并非强制性的,只是一种惯例,但它用于提示该属性或方法应该只在类内部使用,而不应该在外部直接访问。
Python中的私有属性具有以下特点:
私有属性不能被外部直接访问,但可以通过类内部的方法间接地访问。
在类内部定义的方法可以访问所有属性,包括私有属性,因为它们都在同一个作用域内。
子类无法继承父类的私有属性,但可以通过公有方法来访问父类的私有属性。
接下来勇哥带你探讨如何访问和修改私有属性:
class YongeGe: name= '勇哥' # 普通属性 _ager = 100 # 普通属性 __money = 109 # 私有属性 __money_empty__ = 1 # 不推荐做法 yongge = YongeGe() print(yongge .name) # 输出: 勇哥 print(yongge ._ager ) # 输出: 100 print(yongge ._YongeGe__money ) # 输出: 109 print(yongge .__money_empty__ ) # 输出: 1 print(yongge .__money ) # 输出: AttributeError: 'YongeGe' object has no attribute '__money'