如何不在Python中公开方法

how to not expose methods in python

本问题已经有最佳答案,请猛点这里访问。

我们如何不在Python中公开方法,并使它们在Java中私有?

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


我认为唯一能让人无法访问的方法就是这样

1
2
3
4
5
6
class A:
   def some_func(self,*some_Args):
       def this_is_innaccessible_function():
           return "yellow"

       print this_is_innaccessible_function()

但是,其他类也无法访问它…唯一可以进入的地方是some_func内。

标准惯例告诉我们用双下划线标记私有funcs,这会导致一些名称在后台混乱,这使得从类外部访问变得稍微困难一些。

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