title: Can zope.interface define how a class' __init__ method should look?
body: <p>I have several similar classes which will all be initialised by the same code, and thus need to have the same "constructor signature."  (Are there really constructors and signatures in the dynamic Python?  I digress.)</p>
  
  <p>What is the best way to define a classes __ init __ parameters using zope.interface?</p>
  
  <p>I'll paste some code I've used for experimenting with zope.interface to facilitate discussion:</p>
  
  <pre><code>
  from zope.interface import Interface, Attribute, implements, verify
  
  class ITest(Interface):
      required_attribute = Attribute(
          """A required attribute for classes implementing this interface.""")
      def required_method():
          """A required method for classes implementing this interface."""
  
  class Test(object):
      implements(ITest)
      required_attribute = None
      def required_method():
          pass
  
  print verify.verifyObject(ITest, Test())
  print verify.verifyClass(ITest, Test)
  </code></pre>
  
  <p>I can't just define an __ init __ function in ITest, because it will be treated specially by the Python interpreter - I think?  Whatever the case, it doesn't seem to work.  So again, what is the best way to define a "class constructor" using a zope.interface?</p>