python私有成员和共有成员
时间: 2023-10-12 13:17:09 浏览: 94
08-python-重定义森林火灾模拟-接口-共有,私有和特殊方法和属性
5星 · 资源好评率100%
在Python中,没有严格意义上的私有成员和共有成员的概念。但是,可以通过以下方式模拟:
1. 以双下划线开头的变量或方法名表示私有成员,如`__private_var`或`__private_method`。
2. 以单下划线开头的变量或方法名表示受保护的成员,即只能在当前类或子类中访问,如`_protected_var`或`_protected_method`。
3. 没有下划线开头的变量或方法名表示公有成员,即可以在任何地方访问,如`public_var`或`public_method`。
下面是一个示例代码:
```python
class MyClass:
def __init__(self):
self.public_var = "public" # 公有成员
self._protected_var = "protected" # 受保护的成员
self.__private_var = "private" # 私有成员
def public_method(self):
print("This is a public method.")
def _protected_method(self):
print("This is a protected method.")
def __private_method(self):
print("This is a private method.")
def access_private(self):
print(self.__private_var) # 可以在类内部访问私有成员
self.__private_method() # 可以在类内部调用私有方法
obj = MyClass()
print(obj.public_var) # 可以访问公有成员
print(obj._protected_var) # 可以访问受保护的成员
obj.public_method() # 可以调用公有方法
obj._protected_method() # 可以调用受保护的方法
# obj.__private_var # 不能直接访问私有成员,会报错
# obj.__private_method() # 不能直接调用私有方法,会报错
obj.access_private() # 可以通过类内部的方法访问私有成员和方法
```
阅读全文