Väntar på borttagning i Python 3.16¶
Importsystemet:
Att ställa in
__loader__
på en modul medan man misslyckas med att ställa in__spec__.loader
är föråldrat. I Python 3.16 kommer__loader__
inte längre att anges eller tas i beaktande av importsystemet eller standardbiblioteket.
-
Formatkoden
'u'
(wchar_t
) har utgått i dokumentation sedan Python 3.3 och vid körning sedan Python 3.13. Använd istället formatkoden'w'
(Py_UCS4
) för Unicode-tecken.
-
asyncio.iscoroutinefunction()
är föråldrad och kommer att tas bort i Python 3.16; användinspect.iscoroutinefunction()
istället. (Bidrag från Jiahao Li och Kumar Aditya i gh-122875.)asyncio
-policysystemet är föråldrat och kommer att tas bort i Python 3.16. I synnerhet är följande klasser och funktioner föråldrade:Användare bör använda
asyncio.run()
ellerasyncio.Runner
med loop_factory för att använda önskad implementering av händelseslingan.Till exempel, för att använda
asyncio.SelectorEventLoop
på Windows:import asyncio async def main(): ... asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)
(Bidrag från Kumar Aditya i gh-127949.)
-
Bitvis invertering på booleska typer,
~True
eller~False
har varit föråldrad sedan Python 3.12, eftersom det ger överraskande och ointuitiva resultat (\-2
och\-1
). Användnot x
istället för den logiska negationen av en booleansk formel. I det sällsynta fallet att du behöver den bitvisa inverteringen av det underliggande heltalet, konvertera tillint
explicit (~int(x)
).
-
Att anropa Python-implementationen av
functools.reduce()
med funktion eller sekvens som nyckelordsargument är inte längre aktuellt sedan Python 3.14.
-
Stöd för anpassade logghanterare med strm-argumentet är föråldrat och planeras att tas bort i Python 3.16. Definiera hanterare med stream-argumentet istället. (Bidrag från Mariusz Felisiak i gh-115032.)
-
Giltiga tillägg börjar med en ’.’ eller är tomma för
mimetypes.MimeTypes.add_type()
. Okommenterade tillägg är föråldrade och kommer att ge upphov till ettValueError
i Python 3.16. (Bidrag från Hugo van Kemenade i gh-75223.)
-
Undantaget
ExecError
har varit föråldrat sedan Python 3.14. Det har inte använts av någon funktion ishutil
sedan Python 3.4, och är nu ett alias förRuntimeError
.
-
Metoden
Class.get_methods
har utgått sedan Python 3.14.
sys
:Funktionen
_enablelegacywindowsfsencoding()
är föråldrad sedan Python 3.13. Använd miljövariabelnPYTHONLEGACYWINDOWSFSENCODING
istället.
-
Funktionen
sysconfig.expand_makefile_vars()
är föråldrad sedan Python 3.14. Användvars
-argumentet isysconfig.get_paths()
istället.
-
Det odokumenterade och oanvända attributet
TarFile.tarfile
är föråldrat sedan Python 3.13.