types — názvy vestavěných typů

Tento modul definuje názvy některých typů objektů, které používá standardní interpret Pythonu, ale nejsou vystaveny jako vestavěné funkce (například typ funkcí nebo generátorů), spolu s několika málo pomocníky pro dynamickou konstrukci tříd.

Toto je MicroPython port podmnožiny modulu types z CPythonu. Některé typové aliasy, které nemají v MicroPythonu užitečnou reprezentaci (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType), jsou vystaveny jako zástupné hodnoty None, aby kód, který je pouze referencuje, šel i nadále importovat, ale nebudou odpovídat žádnému skutečnému objektu přes isinstance().

Dostupnost: Tento modul je součástí micropython-lib. Ve výchozím nastavení je zahrnut pouze na OpenMV N6 a OpenMV AE3. Na ostatních OpenMV Cam jej lze nainstalovat pomocí mip (nebo zamrazit do vlastního firmwaru); viz Správa balíčků.

Typové aliasy

types.FunctionType: type

Typ uživatelsky definovaných funkcí a objektů vytvořených příkazy def.

types.LambdaType: type

Typ výrazů lambda. Shodný s FunctionType.

types.GeneratorType: type

Typ objektů generátor-iterátor vytvářených generátorovými funkcemi.

types.MethodType: type

Typ vázaných metod instancí uživatelsky definovaných tříd.

types.BuiltinFunctionType: type

Typ vestavěných funkcí jako len() a sys.exit().

types.BuiltinMethodType: type

Typ vázaných metod vestavěných typů (například [].append). Shodný s BuiltinFunctionType.

types.ModuleType: type

Typ importovaných modulů.

types.CodeType: None

Zástupný symbol pro typ objektu code z CPythonu. V této implementaci vždy None.

types.MappingProxyType: None

Zástupný symbol pro typ proxy mapování pouze pro čtení, který v CPythonu vrací type.__dict__. V této implementaci vždy None.

types.SimpleNamespace: None

Zástupný symbol pro třídu types.SimpleNamespace z CPythonu. V této implementaci vždy None.

types.TracebackType: None

Zástupný symbol pro typ objektů traceback. V této implementaci vždy None.

types.FrameType: None

Zástupný symbol pro typ objektů frame. V této implementaci vždy None.

types.GetSetDescriptorType: None

Zástupný symbol pro typ deskriptorů atributů definovaných rozšiřujícími typy. V této implementaci vždy None.

types.MemberDescriptorType: None

Zástupný symbol pro typ slotových deskriptorů definovaných rozšiřujícími typy. V této implementaci vždy None.

Funkce

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

Dynamicky vytvoří objekt třídy způsobem, který odráží příkaz class kompatibilní s PEP 3115.

  • name je název nové třídy.

  • bases je n-tice základních tříd.

  • kwds je slovník klíčových argumentů předávaných metatřídě. Klíč "metaclass", pokud je přítomen, vybírá metatřídu přímo.

  • exec_body je volitelný volatelný objekt, který bude vyvolán s čerstvě připraveným jmenným prostorem třídy; měl by jej naplnit atributy nové třídy.

Vrací nově sestavenou třídu.

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

Vypočítá vhodnou metatřídu a připraví jmenný prostor pro novou třídu.

  • name je název třídy, která se má vytvořit.

  • bases je n-tice základních tříd.

  • kwds je slovník klíčových argumentů. Klíč "metaclass", pokud je přítomen, je odstraněn z vrácených kwds a použit jako metatřída. Jinak se použije metatřída bases[0], s návratem k type.

Vrací 3-n-tici (metaclass, namespace, kwds), kde namespace je výsledkem volání metaclass.__prepare__, pokud je definováno, jinak prázdný slovník, a kwds je kopie vstupu s odstraněnou případnou položkou "metaclass".