
Generate and update software by writing its code in the programming language that boasts extensive libraries as well as broad interoperability. Written and executed code is optionally tested and adjusted an unlimited number of times via the built-in interpreter.
Python is described as a Dynamic Object-Oriented Programming language, but it can be used for many other purposes as well. The basic advantage of Python relies in its clear syntax, which gives a nice cushion to beginners. What I mean by “clear syntax” is that programming with Python is similar to writing a normal text, very similar to day-to-day English language.
Using Python you can do a lot more things on your own. It helps you to write GUI-based programs, to access your databases, to integrate it with XML data, to perform network-related programming, to extend the programming capabilities of C, to seamlessly integrate with Java, and much more.
Python comes with two types of environments you can work with, namely is “GUI-based Integrated Development Environment” and the classic command line. Python is always known for its quick, robust, reliable, and reusable applications. Its “blocks” programming philosophy helps you to build on scalable projects easily. With its unique memory management (such as the “garbage collection”, in order to clean up memory cycles), it keeps its own place among other programming languages.
Python supports almost all existing platforms. It runs flawlessly with Windows, Linux, UNIX, Mac OS X, OS/2, Amiga, Palm devices, Nokia mobile phones, Java and .Net Virtual Machines.
v3.8.2150.1013 [Oct 14, 2019]
Security¶
- Audit hooks are now cleared later during finalization to avoid missing events.
- Ensure python3.dll is loaded from correct locations when Python is embedded (CVE-2020-15523).
Core and Builtins
- Always cache the running loop holder when running asyncio.set_running_loop.
- Fix incorrect refcounting in _ssl.c’s _servername_callback().
- Python 3.8.3 had a regression where compiling with ast.PyCF_ALLOW_TOP_LEVEL_AWAIT would aggressively mark list comprehension with CO_COROUTINE. Now only list comprehension making use of async/await will tagged as so.
- Guard against a NULL pointer dereference within bytearrayobject triggered by the bytearray() + bytearray() operation.
- The “hackcheck” that prevents sneaking around a type’s __setattr__() by calling the superclass method was rewritten to allow C implemented heap types.
Library
- Fix the error handling in ssl.SSLContext.load_dh_params().
- The write_history() atexit function of the readline completer now ignores any OSError to ignore error if the filesystem is read-only, instead of only ignoring FileNotFoundError and PermissionError.
- Fixed the use of glob() in the stdlib: literal part of the path is now always correctly escaped.
- Fixed email.contentmanager to allow set_content() to set a null string.
IDLE
- Add keywords to module name completion list. Rewrite Completions section of IDLE doc.
- The encoding of stdin, stdout and stderr in IDLE is now always UTF-8.