Marco Mariani wrote:
> In chapter 5.4 of the cooking book, Philipp says:
>> [...] We could now implement a custom factory, for example one that
>> allows us to set initial attribute values of the recipe. (We would
>> normally extend the Recipe class with a constructor to do that, but
>> let us implement a factory here for demonstration purposes.)
Note that this particular example of a custom factory is a bad example.
It has been argued that factories should preferrably not take arguments.
If they did take certain (required) arguments, then they would be
implying a contract that isn't explicitly stated in an interface.
> How should I write the constructor? I've tried the naive __init__ method
> but I must be missing something, as it doesn't get passed any argument.
> For instance, I'd like to have an attribute recipe.creation_date which
> is editable in the addform but has datetime.datetime.now() as a default
I presume, this is what you want:
self.creation_date = datetime.datetime.now()
Zope3-users mailing list