python 中类的私有共有
时间: 2023-10-30 09:01:37 浏览: 47
在Python中,类的属性和方法可以被设置为私有或公有。
私有属性和方法可以通过在名称前面添加两个下划线 "__" 来定义。这样的话,这些属性和方法就只能在类的内部访问,而无法在类的外部直接访问。
公有属性和方法则没有限制,可以在类的内部和外部都可以访问。
下面是一个示例代码:
```python
class MyClass:
def __init__(self):
self.public_attribute = "I am a public attribute"
self.__private_attribute = "I am a private attribute"
def public_method(self):
print("I am a public method")
def __private_method(self):
print("I am a private method")
obj = MyClass()
# 访问公有属性和方法
print(obj.public_attribute)
obj.public_method()
# 无法直接访问私有属性和方法
# print(obj.__private_attribute)
# obj.__private_method()
# 但是可以通过使用"_类名__属性名"的方式来访问私有属性和方法
print(obj._MyClass__private_attribute)
obj._MyClass__private_method()
```
请注意,在Python中,私有属性和方法的命名规范是一种约定,并不是严格的限制。这意味着你仍然可以通过直接访问 `obj.__private_attribute` 或 `obj.__private_method()` 的方式来访问私有成员,但不被推荐。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)