您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在python的子类中检测方法重载?

如何在python的子类中检测方法重载?

您可以使用自己的装饰器。但这是一个技巧,仅适用于您控制实现的类。

def override(method):
  method.is_overridden = True
  return method

class Super:
   def __init__(self):
      if hasattr(self.method, 'is_overridden'):
         print 'different'
      else:
         print 'same'
   @classmethod
   def method(cls):
      pass

class Sub1(Super):
   @override
   def method(self):
      print 'hi'

class Sub2(Super):
   pass

super() # should be same
Sub1() # should be different
Sub2() # should be same

>>> same
>>> different
>>> same
python 2022/1/1 18:30:10 有191人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶