如何不暴露python中的方法[重复]

Posted

技术标签:

【中文标题】如何不暴露python中的方法[重复]【英文标题】:how to not expose methods in python [duplicate] 【发布时间】:2013-03-12 10:13:19 【问题描述】:

我们怎样才能不暴露 Python 中的方法并像在 Java 中一样将它们设为私有?

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

【问题讨论】:

在python中,用户不应该做的事情通常被记录。如果用户真的想滥用你的库,那是他/她的权利(哲学与 Java 有点不同)。 基本上你不能。 Python 有将事物标记为“私有”的约定,但如果其他程序员想要使用它们,则无法阻止它们。 好的,我们不能那样做...但是为什么是-1? 【参考方案1】:

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

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

       print this_is_innaccessible_function()

但是,其他班级也无法访问它...唯一可以访问的地方是some_func

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

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

【讨论】:

以上是关于如何不暴露python中的方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python中的公共和私有方法[重复]

如何在Python中的for循环内创建对象列表而不继承属性值[重复]

Python - 如何获取文本文件中的行数[重复]

python中的Max和Min方法,返回不正确的值[重复]

Python 如何优雅的删除列表中的重复元素

vue中的方法如何暴露给webview,使安卓和iOS可以调用