Python面向对象编程:如何实现私有属性和方法?
在Python中,你可以使用下划线_
前缀来创建私有属性。同样,对于私有方法,可以将其名称首字母大写,然后使用__
符号。
以下是一个简单的例子:
class MyClass:
# 私有属性
__private_attribute = 0
# 私有方法
def __private_method(self):
return self.__private_attribute * 2
# 公共属性和方法
public_attribute = 5
public_method = lambda: public_attribute + self.__private_attribute
# 禁止直接访问私有属性和方法
object = MyClass()
print(object.__private_attribute) # 这会抛出AttributeError
print(object.__private_method()) # 同样会抛出错误
在这个例子中,__private_attribute
和 __private_method
是私有的,不能直接访问。但是通过公共属性和方法,可以间接地影响到它们。
还没有评论,来说两句吧...