types — nimiä sisäänrakennetuille tyypeille

Tämä moduuli määrittää nimiä joillekin objektityypeille, joita vakiomuotoinen Python-tulkki käyttää mutta joita ei ole näkyvillä sisäänrakennettuina (kuten funktioiden tai generaattorien tyyppi), sekä pienen joukon apufunktioita dynaamiseen luokkien rakentamiseen.

Tämä on MicroPython-sovitus CPythonin types-moduulin osajoukosta. Useat tyyppialiakset, joilla ei ole hyödyllistä esitysmuotoa MicroPythonissa (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType), on tarjolla None-paikkamerkkeinä, jotta niihin vain viittaava koodi pysyy tuotavissa, mutta ne eivät vastaa mitään todellista objektia isinstance()-tarkistuksessa.

Saatavuus: Tämä moduuli on osa micropython-lib-kirjastoa. Se sisältyy oletuksena vain OpenMV N6:lle ja OpenMV AE3:lle. Muilla OpenMV Cam -kameroilla se voidaan asentaa mip-työkalulla (tai jäädyttää mukautettuun laiteohjelmistoon); katso Pakettien hallinta.

Tyyppialiakset

types.FunctionType: type

Käyttäjän määrittämien funktioiden ja def-lauseilla luotujen objektien tyyppi.

types.LambdaType: type

lambda-lausekkeiden tyyppi. Identtinen FunctionType-tyypin kanssa.

types.GeneratorType: type

Generaattorifunktioiden tuottamien generaattori-iteraattoriobjektien tyyppi.

types.MethodType: type

Käyttäjän määrittämien luokkainstanssien sidottujen metodien tyyppi.

types.BuiltinFunctionType: type

Sisäänrakennettujen funktioiden tyyppi, kuten len() ja sys.exit().

types.BuiltinMethodType: type

Sisäänrakennettujen tyyppien sidottujen metodien tyyppi (esimerkiksi [].append). Identtinen BuiltinFunctionType-tyypin kanssa.

types.ModuleType: type

Tuotujen moduulien tyyppi.

types.CodeType: None

Paikkamerkki CPythonin code-objektityypille. Tässä toteutuksessa aina None.

types.MappingProxyType: None

Paikkamerkki vain luettavan kuvauksen välitysobjektin tyypille, jonka type.__dict__ palauttaa CPythonissa. Tässä toteutuksessa aina None.

types.SimpleNamespace: None

Paikkamerkki CPythonin types.SimpleNamespace-luokalle. Tässä toteutuksessa aina None.

types.TracebackType: None

Paikkamerkki jäljitysobjektien (traceback) tyypille. Tässä toteutuksessa aina None.

types.FrameType: None

Paikkamerkki kehysobjektien tyypille. Tässä toteutuksessa aina None.

types.GetSetDescriptorType: None

Paikkamerkki laajennustyyppien määrittämien attribuuttikuvaajien tyypille. Tässä toteutuksessa aina None.

types.MemberDescriptorType: None

Paikkamerkki laajennustyyppien määrittämien lokerokuvaajien (slot descriptor) tyypille. Tässä toteutuksessa aina None.

Funktiot

types.new_class(name: str, bases: tuple = (), kwds: dict | None = None, exec_body: Callable[[dict], None] | None = None) type

Luo luokkaobjekti dynaamisesti tavalla, joka vastaa PEP 3115-yhteensopivaa class-lausetta.

  • name on uuden luokan nimi.

  • bases on kantaluokkien monikko.

  • kwds on sanakirja avainsana-argumenteista, jotka välitetään metaluokalle. Mahdollinen "metaclass"-avain valitsee metaluokan suoraan.

  • exec_body on valinnainen kutsuttava objekti, joka kutsutaan juuri valmistellun luokan nimiavaruuden kanssa; sen tulee täyttää nimiavaruus uuden luokan attribuuteilla.

Palauttaa juuri rakennetun luokan.

types.prepare_class(name: str, bases: tuple = (), kwds: dict | None = None) tuple[type, dict, dict]

Laske sopiva metaluokka ja valmistele nimiavaruus uutta luokkaa varten.

  • name on luotavan luokan nimi.

  • bases on kantaluokkien monikko.

  • kwds on sanakirja avainsana-argumenteista. Mahdollinen "metaclass"-avain poistetaan palautetusta kwds-arvosta ja sitä käytetään metaluokkana. Muutoin käytetään bases[0]-luokan metaluokkaa, ja varatapauksena type-luokkaa.

Palauttaa kolmialkioisen monikon (metaclass, namespace, kwds), jossa namespace on tulos metaclass.__prepare__-metodin kutsumisesta, jos se on määritetty, tai muutoin tyhjä sanakirja, ja kwds on kopio syötteestä, josta mahdollinen "metaclass"-merkintä on poistettu.