gpt4 book ai didi

python - 在python中模拟私有(private)变量

转载 作者:太空狗 更新时间:2023-10-30 00:20:49 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
private members in python

我真正想要隐藏的变量很少,因为它们不属于我的类之外。此外,所有此类未记录的变量都使继承变得无用。

如何隐藏不想在对象外显示的变量?

为了阐明为什么我需要私有(private)变量,第一个例子无法隐藏变量只是一种不便,然后是另一个真正的问题:

class MyObject(object):
def __init__(self, length):
self.length = length
def __len__(self):
return length

item = MyObject(5)
item.length
len(item)

所以我有两种方法来访问此处项目的“长度”。这只是一种不便,并没有什么可怕的。

from wares import ImplementationSpecific

class MyThing(object):
def __init__(self):
self.__no_access_even_if_useful = ImplementationSpecific()
def restricted_access(self):
return self.__no_access_even_if_useful.mutable_value

thing = MyThing()
thing.restricted_access()
thing._MyThing__no_access_even_if_useful.something_useful_for_someone()

假设有一天我想更改实现。除非我真的隐藏了实现细节,否则它很可能会破坏某些东西。

我会把它当作任何人都可以编程的那样。 “任何人”都可以从我的实现细节中找到有用的东西并使用它,即使我强烈反对这样做!直接说:“不,不存在,试试别的吧。”会容易得多。

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