Das Objekt Pin: Unterschied zwischen den Versionen

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche
Zeile 31: Zeile 31:
 
Es bleibt aber immer die selbe ID, also auch das selbe Objekt.
 
Es bleibt aber immer die selbe ID, also auch das selbe Objekt.
 
<br>
 
<br>
 +
Das bestätigt auch Micropython elbst:
 +
<pre>
 +
>>> Pin(11) == b_up
 +
    True
 +
>>> Pin(11) == x
 +
    True
 +
>>> Pin(11) is b_up
 +
    True
 +
>>> Pin(11) is x
 +
    True
 +
</pre>

Version vom 18. Januar 2024, 21:42 Uhr

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