【问题标题】:Python functions: can they be made private?Python 函数:可以将它们设为私有吗?
【发布时间】:2020-07-08 04:07:13
【问题描述】:

我需要一个只在课堂上使用的函数。是像其他方法一样定义好还是藏在某个地方比较好?

class Test:

    def __init__(self,a,b):
        self.a=a
        self.b=b

    def sayhi(self):
        print('hi')

    def printa(self,c):
        self.sayhi()
        print('A+C=',self.a+c)

    def printb(self,c):
        self.sayhi()
        print('B+C=',self.b+c) 

【问题讨论】:

    标签: python python-3.x class oop


    【解决方案1】:

    使其成为“私人”功能

    使用 python 约定通过合同将函数设为“私有”。

    https://dbader.org/blog/meaning-of-underscores-in-python

    class Test:
        def __init__(self,a,b):
            self.a=a
            self.b=b
    
        def _sayhi(self):
            print('hi')
    
        def printa(self,c):
            self._sayhi()
            print('A+C=',self.a+c)
    
        def printb(self,c):
            self._sayhi()
            print('B+C=',self.b+c) 
    

    【讨论】:

      【解决方案2】:

      与 java 和其他一些面向对象的语言不同,Python 没有私有方法。 您可以在方法名称前添加一个下划线来表示它是私有方法。注意:这仅对您有意义,解释器会忽略它。该方法仍然可以在类外调用

      【讨论】:

      • 欢迎来到 Stackoverflow - 很好的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 2013-12-05
      • 2020-08-07
      • 2017-04-11
      • 2016-01-02
      • 1970-01-01
      相关资源
      最近更新 更多