gpt4 book ai didi

python - 带有前导双下划线的实例/类属性的意义和使用(特殊行为)

转载 作者:行者123 更新时间:2023-11-28 22:58:22 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
What is the benefit of private name mangling in Python?

在玩python的过程中,我发现如果classinstance变量名以2个下划线开头,它们会被重命名为在前面加上' _'.

例如

class Test(object):
__attribute = "dunderscored"
def __init__(self, value=0):
self.__instance_attribute = value


test_instance = Test()

然后两个变量都将重命名为

test_instance._Test__attributetest_instance._Test__instance_attribute

为什么会有这样的行为/特征?是否有任何需要,或有任何特殊用途?

我可以想到一个用例,当不同的类具有一些具有通用名称的属性时,例如。 value, id, member 是共同的,但对于某些函数/方法,我们只期望/假设这些类中的一个。在这种情况下,有可能没有进行类型检查,并且当另一个类实例被传递给它时(可能是错误的)可能会导致错误和/或不希望的行为。

但是除了这个用例之外,我看不到这种特殊行为的任何好处。该行为看起来像是一项功能,非常基本的功能,我觉得我在这里遗漏了一些东西。如果它是一个功能,它的用途是什么?有什么典型的用例吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com