python中如何创建类的私有属性
时间: 2023-10-23 16:22:51 浏览: 35
在Python中,可以通过在属性名前加上两个下划线来创建私有属性。私有属性只能在类内部访问,不能在类外部直接访问。例如:
```python
class MyClass:
def __init__(self):
self.__private_attr = 10
def __private_method(self):
print("This is a private method.")
def public_method(self):
self.__private_method()
print("This is a public method.")
obj = MyClass()
obj.public_method()
# Output: This is a private method.
# This is a public method.
# This will raise an AttributeError
print(obj.__private_attr)
```
在上面的代码中,`__private_attr` 和 `__private_method` 都是私有的,只能在类内部访问。`public_method` 是公有的,可以在类外部访问。在类外部直接访问私有属性会抛出 `AttributeError`。
相关问题
python中怎么创建私有属性数据
在Python中,可以通过在属性名前加上两个下划线来创建私有属性数据。例如:
class MyClass:
def __init__(self):
self.__private_attr = 42
def get_private_attr(self):
return self.__private_attr
def set_private_attr(self, value):
self.__private_attr = value
my_obj = MyClass()
print(my_obj.get_private_attr()) # 输出 42
my_obj.set_private_attr(100)
print(my_obj.get_private_attr()) # 输出 100
python 类私有属性
Python中的私有属性是指以双下划线开头(例如:`__attribute_name`)的属性。这样的属性在类外部是无法直接访问的,只能在类的内部使用。
下面是一个示例:
```python
class MyClass:
def __init__(self):
self.__private_attribute = 10 # 私有属性
def get_private_attribute(self):
return self.__private_attribute
def set_private_attribute(self, value):
self.__private_attribute = value
obj = MyClass()
print(obj.get_private_attribute()) # 输出: 10
obj.set_private_attribute(20)
print(obj.get_private_attribute()) # 输出: 20
print(obj.__private_attribute) # 错误: AttributeError: 'MyClass' object has no attribute '__private_attribute'
```
在上面的例子中,`__private_attribute` 是一个私有属性。我们可以通过定义公共的 getter 和 setter 方法 `get_private_attribute` 和 `set_private_attribute` 来间接访问和修改私有属性。但是,如果我们直接尝试访问 `obj.__private_attribute`,会抛出一个 `AttributeError` 异常。
请注意,尽管Python使用了名称修饰来隐藏属性,但实际上这只是一种约定,并没有真正限制对私有属性的访问。可以使用 `_ClassName__private_attribute` 的方式来绕过名称修饰,但这样做不被推荐,因为这种方式违反了类的封装性原则。