<p>基本上,从严格意义上说,你不能。python中的每个类和方法都是公共的,所以这是不可能的。你可以做一些破坏,但它仍然不会停止,如果有人正在考虑使用它。你知道吗</p>
<p>按照惯例,大多数python程序员都会在方法或属性前面加上u来表示内部方法。但没有什么能阻止它。你知道吗</p>
<p>一个损坏的例子(摘自使用Python的python3面向对象编程):</p>
<pre><code>class SecretString:
'''A not-at-all secure way to store a secret string.'''
def __init__(self, plain_string, pass_phrase):
self.__plain_string = plain_string
self.__pass_phrase = pass_phrase
def decrypt(self, pass_phrase):
'''Only show the string if the pass_phrase is correct.'''
if pass_phrase == self.__pass_phrase:
return self.__plain_string
else:
return ''
</code></pre>
<p>现在让我们试试这个:</p>
<pre><code>>>> secret_string = SecretString("ACME: Top Secret", "antwerp")
>>> print(secret_string.decrypt("antwerp"))
ACME: Top Secret
>>> print(secret_string.__plain_text)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError:
</code></pre>
<p><strong>哇!成功了。</strong></p>
<p><strong>现在,这个:</strong></p>
<pre><code>>>> print(secret_string._SecretString__plain_string)
ACME: Top Secret
</code></pre>
<p><strong>不,它失败了。</strong></p>
<p>以上是一个名称损坏的例子,你可以用在最好的意义上。你知道吗</p>