"Mr. Wrobel" <m...@e-wrobel.pl> writes: > Quick question, can anybody tell me when to use __init__ instead of > __new__ in meta programming?
Use ‘__new__’ to do the work of *creating* one instance from nothing; allocating the storage, determining the type, etc. — anything that will be *the same* for every instance. ‘__new__’ is the constructor. Use ‘__init__’ to do the work of *configuring* one instance, after it already exists. Any attributes that are special to an instance should be manipulated in the ‘__init__’ method. ‘__init__’ is the initialiser. Because Python has a powerful type system built in, you generally have little or nothing to do in ‘__new__’, and more work in ‘__init__’ for each instance. That's a general answer because you haven't said what your goal is. What is it you want to do with types? -- \ “Fur coats made for the ladies from their own skin.” —furrier, | `\ Sweden | _o__) | Ben Finney -- https://mail.python.org/mailman/listinfo/python-list