python面向对象的私有
时间: 2023-08-21 07:16:25 浏览: 99
14-Python面向对象
Python中的私有属性和方法是以双下划线(__)开头,但不以双下划线结尾。私有属性和方法只能在类的内部访问,无法从类的外部直接访问。但可以通过特殊的方式进行访问,例如使用getter和setter方法。
下面是一个示例代码,演示了如何定义私有属性和方法:
```python
class MyClass:
def __init__(self):
self.__private_attr = 10 # 私有属性
def __private_method(self):
print("This is a private method.")
def public_method(self):
print("This is a public method.")
self.__private_method() # 在公有方法中调用私有方法
obj = MyClass()
obj.public_method()
# obj.__private_attr # 无法直接访问私有属性
# obj.__private_method() # 无法直接调用私有方法
```
在上面的示例中,`__private_attr` 和 `__private_method` 都是私有的。如果尝试在类的外部直接访问这些私有成员,将会导致错误。但在类的内部,可以通过公有方法来访问和调用私有成员。例如,在 `public_method` 方法中可以调用 `__private_method` 方法。
注意:虽然Python并没有真正的私有性,但是使用双下划线开头的命名约定可以将属性和方法标记为私有,并且这种约定通常会被开发者遵守,以避免意外的访问。
阅读全文