确定类是否具有用户定义的__init__

Red*_*edX 5 python python-2.7

我试图确定我通过参数收到__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
Run Code Online (Sandbox Code Playgroud)

Tom*_*zes 6

我认为这会奏效:

def has_user_defined_init_in(clazz):
    return "__init__" in clazz.__dict__
Run Code Online (Sandbox Code Playgroud)