在Python中,私有成员可以通过在其名称前加上一个下划线来表示。但是,这只是一种约定,Python并不会强制执行私有性。如果你不喜欢使用下划线作为私有成员的前缀表示,你可以使用其他约定来表示私有性,例如在名称前面添加一个双下划线。
下面是一个示例代码,展示了如何摒弃Python私有成员的前缀表示:
class MyClass:
def __init__(self):
self._private_member = 10
self.__private_member = 20
def _private_method(self):
print("This is a private method.")
def __private_method(self):
print("This is another private method.")
def public_method(self):
print("This is a public method.")
self._private_method()
self.__private_method()
obj = MyClass()
print(obj._private_member) # 输出: 10
print(obj._MyClass__private_member) # 输出: 20
obj.public_method()
在这个示例中,我们创建了一个名为MyClass
的类。该类有两个私有成员变量:_private_member
和__private_member
。_private_member
使用了常见的下划线前缀表示私有性,而__private_member
使用了双下划线前缀。
我们还定义了两个私有方法:_private_method
和__private_method
。同样地,_private_method
使用了下划线前缀,而__private_method
使用了双下划线前缀。
在public_method
方法中,我们可以看到如何访问这些私有成员和方法。我们可以直接通过实例对象访问_private_member
,但是访问__private_member
时需要使用_MyClass__private_member
的形式。同样地,我们可以直接调用_private_method
,但是调用__private_method
时需要使用_MyClass__private_method
的形式。
总结来说,虽然Python约定使用下划线作为私有成员的前缀表示,但你可以使用其他约定,例如双下划线前缀,来表示私有性。不过,请注意,这只是一种约定,Python并没有强制执行私有性。
上一篇:摒弃内连接,但不丧失结构。