如何在python中不公开方法

如何在python中不公开方法,python,Python,我们怎么能不在Python中公开方法并使它们像在Java中那样私有呢 具体地说,我的场景涉及用户不应该使用的函数。我认为使方法不可访问的唯一方法是这样 class A: def some_func(self,*some_Args): def this_is_innaccessible_function(): return "yellow" print this_is_innaccessible_function() 然而,班上的其他人

我们怎么能不在Python中公开方法并使它们像在Java中那样私有呢


具体地说,我的场景涉及用户不应该使用的函数。

我认为使方法不可访问的唯一方法是这样

class A:
   def some_func(self,*some_Args):
       def this_is_innaccessible_function():
           return  "yellow"

       print this_is_innaccessible_function()
然而,班上的其他人也无法访问它。。。只有在
some\u func

标准约定告诉我们用双下划线标记私有func,这会导致一些名称在幕后被破坏,这使得从类外部访问变得更加困难

class A:
    def __private_by_convention(self):
        print "this should not be called outside of class...but it can be"

在python中,用户不应该做的事情通常是这样记录的。如果用户真的想滥用你的库,那是他/她的权利(原理与Java有点不同)。基本上你不能。Python有将事物标记为“私有”的约定,但是如果其他程序员想要使用它们,就没有办法阻止它们。好的,我们不能这样做……但是为什么要使用-1呢?