Common Lisp the Language, 2nd Edition
Next: Defaulting of
Initialization Up: Object
Creation and Previous: Initialization Arguments
Initialization arguments are checked for validity in each of the four
situations that use them. An initialization argument may be valid in one
situation and not another. For example, the system-supplied primary
method for make-instance
defined for the class
standard-class
checks the validity of its initialization
arguments and signals an error if an initialization argument is supplied
that is not declared valid in that situation.
There are two means of declaring initialization arguments valid.
:initarg
slot option to defclass
. The
:initarg
slot option is inherited from superclasses. Thus
the set of valid initialization arguments that fill slots for a class is
the union of the initialization arguments that fill slots declared valid
by that class and its superclasses. Initialization arguments that fill
slots are valid in all four contexts.allocate-instance
,
initialize-instance
, and shared-initialize
.
Initialization arguments declared valid by these methods are valid when
making an instance of a class.reinitialize-instance
and shared-initialize
.
Initialization arguments declared valid by these methods are valid when
re-initializing an instance.update-instance-for-redefined-class
and
shared-initialize
. Initialization arguments declared valid
by these methods are valid when updating an instance to conform to a
redefined class.update-instance-for-different-class
and
shared-initialize
. Initialization arguments declared valid
by these methods are valid when updating an instance to conform to the
definition of a different class.The set of valid initialization arguments for a class is the set of
valid initialization arguments that either fill slots or supply
arguments to methods, along with the predefined initialization argument
:allow-other-keys
. The default value for
:allow-other-keys
is nil
. The meaning of
:allow-other-keys
is the same here as when it is passed to
an ordinary function.
Next: Defaulting of
Initialization Up: Object
Creation and Previous: Initialization Arguments
AI.Repository@cs.cmu.edu