在Python中,您可以通过在属性名称前加上双下划线__来创建类中的私有属性。这种做法通常被称为“名称修饰”,它使属性名称更难以从类外部访问。虽然这并不是真正的封装,但它阻止直接访问这些属性,并表明它们是私有的。以下是一个示例代码:
python
class Student:
def init(self):
self.public_attr_name = 'Seachlann Sara'
self.__private_attr_id = 12
obj = Student()
print(obj.public_attr_name) # 访问公共属性
print(obj.__private_attr_name) # 这将引发AttributeError
但是,您仍然可以使用名称修饰来访问私有属性
print(obj._Student__private_attr_id) # 输出: 12
在上面的示例中,public_attr是一个公共属性,可以直接访问。另一方面,__private_attr是一个私有属性,不应该直接访问。尝试直接访问它将引发AttributeError。但是,您可以通过名称修饰版本'_Student__private_attr'来访问它,但这种做法是不鼓励的,因为它违反了封装原则。
网友评论