【问题标题】:Determinate if class has user defined __init__确定类是否有用户定义的 __init__
【发布时间】:2016-05-25 05:58:39
【问题描述】:

我正在尝试确定我通过参数接收的类是否在传递的类中具有用户定义的__init__ 函数。不在任何超类中。

class HasInit(object):
  def __init__(self):
    pass

class NoInit(object):
  pass

class Base(object):
  def __init__(self):
    pass

class StillNoInit(Base):
  pass

def has_user_defined_init_in(clazz):
  return True if # the magic

assert has_user_defined_init_in(HasInit) == True
assert has_user_defined_init_in(NoInit) == False
assert has_user_defined_init_in(StillNoInit) == False

【问题讨论】:

标签: python python-2.7


【解决方案1】:

我认为这会奏效:

def has_user_defined_init_in(clazz):
    return "__init__" in clazz.__dict__

【讨论】:

  • 只差几秒钟就发布这个:-)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
相关资源
最近更新 更多