8 Predicates and Utilities
Now that we know how to create classes, access slots, and define
methods, it might be useful to verify that everything is doing ok. To
help with this a plethora of predicates have been created.
— Function: find-class symbol &optional errorp
Return the class that symbol represents.
If there is no class,
nil is returned if errorp is
If errorp is non-
wrong-argument-type is signaled.
— Function: class-p class
t if class is a valid class vector.
class is a symbol.
— Function: slot-exists-p object-or-class slot
nil if object-or-class has slot.
— Function: slot-boundp object slot
nil if OBJECT's slot is bound.
Setting a slot's value makes it bound. Calling slot-makeunbound will
make a slot unbound.
object can be an instance or a class.
— Function: eieio-class-name class
Return a string of the form ‘#<class myclassname>’ which should look
similar to other Lisp objects like buffers and processes. Printing a
class results only in a symbol.
— Function: class-option class option
Return the value in CLASS of a given OPTION.
(class-option eieio-default-superclass :documentation)
Will fetch the documentation string for
— Function: class-constructor class
Return a symbol used as a constructor for class. The
constructor is a function used to create new instances of
CLASS. This function provides a way to make an object of a class
without knowing what it is. This is not a part of CLOS.
— Function: eieio-object-name obj
Return a string of the form ‘#<object-class myobjname>’ for obj.
This should look like Lisp symbols from other parts of Emacs such as
buffers and processes, and is shorter and cleaner than printing the
object's vector. It is more useful to use
object-print to get
and object's print form, as this allows the object to add extra display
information into the symbol.
— Function: eieio-object-class obj
Returns the class symbol from obj.
— Function: eieio–object-class obj
eieio-object-class except this is a macro, and no
type-checking is performed.
— Function: eieio-object-class-name obj
Returns the symbol of obj's class.
— Function: eieio-class-parents class
Returns the direct parents class of class. Returns
it is a superclass.
— Function: eieio-class-parents-fast class
eieio-class-parents except it is a macro and no type checking
— Function: eieio-class-parent class
Deprecated function which returns the first parent of class.
— Function: eieio-class-children class
Return the list of classes inheriting from class.
— Function: eieio-class-children-fast class
eieio-class-children, but with no checks.
— Function: same-class-p obj class
t if obj's class is the same as class.
— Function: same-class-fast-p obj class
same-class-p except this is a macro and no type checking
— Function: object-of-class-p obj class
t if obj inherits anything from class. This
is different from
same-class-p because it checks for inheritance.
— Function: child-of-class-p child class
t if child is a subclass of class.
— Function: generic-p method-symbol
method-symbol is a generic function, as
opposed to a regular Emacs Lisp function.