Ställ in objekt¶
Detta avsnitt beskriver det publika API:et för objekten set
och frozenset
. All funktionalitet som inte listas nedan nås bäst med antingen det abstrakta objektprotokollet (inklusive PyObject_CallMethod()
, PyObject_RichCompareBool()
, PyObject_Hash()
, PyObject_Repr()
, PyObject_IsTrue()
, PyObject_Print()
och PyObject_GetIter()
) eller det abstrakta nummerprotokollet (inklusive PyNumber_And()
, PyNumber_Subtract()
, PyNumber_Or()
, PyNumber_Xor()
, PyNumber_InPlaceAnd()
, PyNumber_InPlaceSubtract()
, PyNumber_InPlaceOr()
, och PyNumber_InPlaceXor()
).
-
type PySetObject¶
Denna subtyp av
PyObject
används för att hålla interna data för bådeset
ochfrozenset
objekt. Det är som ettPyDictObject
i det att det har en fast storlek för små uppsättningar (ungefär som tuple-lagring) och kommer att peka på ett separat minnesblock med variabel storlek för medelstora och stora uppsättningar (ungefär som listlagring). Inget av fälten i den här strukturen ska betraktas som offentligt och alla kan ändras. All åtkomst bör ske genom det dokumenterade API:et snarare än genom att manipulera värdena i strukturen.
-
PyTypeObject PySet_Type¶
- En del av Stabil ABI.
Detta är en instans av
PyTypeObject
som representerar Pythonset
-typen.
-
PyTypeObject PyFrozenSet_Type¶
- En del av Stabil ABI.
Detta är en instans av
PyTypeObject
som representerar Python-typenfrozenset
.
Följande makron för typkontroll fungerar på pekare till alla Python-objekt. På samma sätt fungerar konstruktorfunktionerna med alla itererbara Python-objekt.
-
int PySet_Check(PyObject *p)¶
Returnerar true om p är ett
set
-objekt eller en instans av en subtyp. Denna funktion lyckas alltid.
-
int PyFrozenSet_Check(PyObject *p)¶
Returnerar true om p är ett
frozenset
-objekt eller en instans av en subtyp. Denna funktion lyckas alltid.
-
int PyAnySet_Check(PyObject *p)¶
Returnerar true om p är ett
set
-objekt, ettfrozenset
-objekt eller en instans av en subtyp. Denna funktion lyckas alltid.
-
int PySet_CheckExact(PyObject *p)¶
Returnerar true om p är ett
set
-objekt men inte en instans av en subtyp. Denna funktion lyckas alltid.Tillagd i version 3.10.
-
int PyAnySet_CheckExact(PyObject *p)¶
Returnerar true om p är ett
set
-objekt eller ettfrozenset
-objekt men inte en instans av en subtyp. Denna funktion lyckas alltid.
-
int PyFrozenSet_CheckExact(PyObject *p)¶
Returnerar true om p är ett
frozenset
-objekt men inte en instans av en subtyp. Denna funktion lyckas alltid.
-
PyObject *PySet_New(PyObject *iterable)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar en ny
set
som innehåller objekt som returneras av iterable. iterable kan varaNULL
för att skapa en ny tom uppsättning. Returnerar den nya uppsättningen vid framgång ellerNULL
vid misslyckande. UtlöserTypeError
om iterable inte är en iterabel. Konstruktören är också användbar för att kopiera en uppsättning (c=set(s)
).
-
PyObject *PyFrozenSet_New(PyObject *iterable)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar en ny
frozenset
som innehåller objekt som returnerats av iterable. iterable kan varaNULL
för att skapa en ny tom frozenset. Returnerar den nya uppsättningen vid framgång ellerNULL
vid misslyckande. UtlöserTypeError
om iterable inte är en iterable.
Följande funktioner och makron är tillgängliga för instanser av set
eller frozenset
eller instanser av deras subtyper.
-
Py_ssize_t PySet_Size(PyObject *anyset)¶
- En del av Stabil ABI.
Returnerar längden på ett
set
ellerfrozenset
objekt. Ekvivalent medlen(anyset)
. Utlöser ettSystemError
om anyset inte är enset
,frozenset
, eller en instans av en subtyp.
-
Py_ssize_t PySet_GET_SIZE(PyObject *anyset)¶
Makroform av
PySet_Size()
utan felkontroll.
-
int PySet_Contains(PyObject *anyset, PyObject *key)¶
- En del av Stabil ABI.
Returnerar
1
om den hittas,0
om den inte hittas och-1
om ett fel inträffar. Till skillnad från Pythons metod__contains__()
konverterar denna funktion inte automatiskt ohashbara uppsättningar till tillfälliga frozensets. Orsakar ettTypeError
om nyckeln är oashbar. UtlösSystemError
om anyset inte är enset
,frozenset
eller en instans av en subtyp.
-
int PySet_Add(PyObject *set, PyObject *key)¶
- En del av Stabil ABI.
Lägg till nyckel till en
set
-instans. Fungerar även medfrozenset
-instanser (somPyTuple_SetItem()
kan den användas för att fylla i värdena i helt nya frozensets innan de exponeras för annan kod). Returnerar0
vid framgång eller-1
vid misslyckande. Ger ettTypeError
om nyckeln inte är hashbar. Ger ettMemoryError
om det inte finns utrymme att växa. Ge upphov till ettSystemError
om set inte är en instans avset
eller dess subtyp.
Följande funktioner är tillgängliga för instanser av set
eller dess subtyper men inte för instanser av frozenset
eller dess subtyper.
-
int PySet_Discard(PyObject *set, PyObject *key)¶
- En del av Stabil ABI.
Returnerar
1
om nyckeln hittats och tagits bort,0
om den inte hittats (ingen åtgärd vidtagen) och-1
om ett fel uppstått. Ger inte upphov tillKeyError
för saknade nycklar. Ger upphov till ettTypeError
om nyckeln inte är hashbar. Till skillnad från Pythonsdiscard()
-metod konverterar denna funktion inte automatiskt ohashbara uppsättningar till tillfälliga frozensets. UtlöserSystemError
om set inte är en instans avset
eller dess subtyp.
-
PyObject *PySet_Pop(PyObject *set)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar en ny referens till ett godtyckligt objekt i set, och tar bort objektet från set. Returnerar
NULL
om den misslyckas. Ger upphov tillKeyError
om uppsättningen är tom. Utlöser ettSystemError
om set inte är en instans avset
eller dess subtyp.
-
int PySet_Clear(PyObject *set)¶
- En del av Stabil ABI.
Tömmer en befintlig uppsättning på alla element. Returnerar
0
vid framgång. Returnerar-1
och gerSystemError
om set inte är en instans avset
eller dess subtyp.