.. currentmodule:: gpiozero
The GPIO Zero class hierarchy is quite extensive. It contains a couple of base classes:
- :class:`GPIODevice` for individual devices that attach to a single GPIO pin
- :class:`CompositeDevice` for devices composed of multiple other devices like HATs
There are also a couple of mixin classes:
- :class:`ValuesMixin` which defines the
valuesproperties; there is rarely a need to use this as the base classes mentioned above both include it (so all classes in GPIO Zero include thevaluesproperty) - :class:`SourceMixin` which defines the
sourceproperty; this is generally included in novel output device classes
The current class hierarchies are displayed below. For brevity, the mixin classes are omitted:
Finally, for composite devices, the following chart shows which devices are composed of which other devices:
.. autoclass:: GPIODevice(pin)
:inherited-members:
:members:
.. autoclass:: CompositeDevice
:inherited-members:
:members:
.. autoclass:: InputDevice(pin, pull_up=False)
:members:
.. autoclass:: WaitableInputDevice
:members:
.. autoclass:: DigitalInputDevice(pin, pull_up=False, bounce_time=None)
:members:
.. autoclass:: SmoothedInputDevice
:members:
.. autoclass:: AnalogInputDevice
:members:
.. autoclass:: OutputDevice(pin, active_high=True, initial_value=False)
:members:
.. autoclass:: PWMOutputDevice(pin, active_high=True, initial_value=0, frequency=100)
:members:
.. autoclass:: DigitalOutputDevice(pin, active_high=True, initial_value=False)
:members:
.. autoclass:: ValuesMixin(...)
:members:
.. autoclass:: SourceMixin(...)
:members: