Python - 覆盖下划线方法(单_)的最佳方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (71)

所以我的理解是,_privateMethod()通常不应该直接访问/调用类似的方法。但是,由于我需要实现的东西,我需要覆盖我的继承PrivateMethodClass,如:

class MyClass(PrivateMethodClass): 

   def _privateMethod(): 
        #add additional functionality 

我必须扩展这种方法的功能,但我的问题是,这是不好的做法,如果是这样,有什么方法可以做到更干净/更pythonic /更好?

提问于
用户回答回答于

“技术上”Python的约定实际上是私有方法的2 __下划线。我只从类中的另一个方法调用私有方法...而不是从客户端调用。

编辑:仅供参考,根据您使用的是Python 2还是Python 3,超级函数可能略有不同.Python 2.7如下所示......

我不确定我是否理解你的问题..但是当我覆盖父类的方法时,我使用超级函数:

class Example(object):
    def __init__(self, constructor_data):
        self.constructor_data = constructor_data

    def__private_method(self):
        # do something


class SubExample(Example):
    def __init__(self, constructor_data):
        super(SubExample, self).__init__(constructor_data)

    def__private_method(self):
        # do something

扫码关注云+社区

领取腾讯云代金券