Das Objekt Pin
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