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.