Das Objekt Pin

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche

In Python ist alles ein Objekt und Objekte haben eine ID.

Die Instanz Pin(11) existiert, auch wenn GPIO11 noch nicht initialisiert worden ist:

>>> from machine import Pin
>>> id(Pin(11))
    268904804

Sie besitzt auch schon einige default Einstellungen:

>>> print(Pin(11))
    Pin(GPIO11, mode=IN, pull=PULL_DOWN)

Wenn eine Instanz von Pin erzeugt wird, so wird ihr ein Namen zugewiesen und ggf. die Einstellungen gesetzt:

>>> b_up = Pin(11, Pin.IN, Pin.PULL_DOWN)
>>> id(b_up)
    268904804
>>> print(b_up)
    Pin(GPIO11, mode=IN, pull=PULL_DOWN)

Eine solche Instanz kann auch mehrere Namen haben:

>>> x = b_up
>>> print(x)
    Pin(GPIO11, mode=IN, pull=PULL_DOWN)
>>> id(x)
    268904804

Es bleibt aber immer die selbe ID, also auch das selbe Objekt.
Das bestätigt auch Micropython elbst:

>>> Pin(11) == b_up
    True
>>> Pin(11) == x
    True
>>> Pin(11) is b_up
    True
>>> Pin(11) is x
    True

Objekt_und_Namen
Schematische Daratellung von Objekten und ihnen zugewiesenen Namen.