PYTHON

PYTHON

Python was conceived in the late 1980s[40] by Guido van Rossum at Centrum Wiskunde & Informatica (CWI) in the Netherlands as a successor to the ABC programming language, which was inspired by SETL,[41] capable of exception handling and interfacing with the Amoeba operating system.[10] Its implementation began in December?1989.[42] Van Rossum shouldered sole responsibility for the project, as the lead developer, until 12 July 2018, when he announced his "permanent vacation" from his responsibilities as Python's "benevolent dictator for life", a title the Python community bestowed upon him to reflect his long-term commitment as the project's chief decision-maker.[43] In January?2019, active Python core developers elected a five-member Steering Council to lead the project.[44][45]

Python 2.0 was released on 16 October 2000, with many major new features such as list comprehensions, cycle-detecting garbage collection, reference counting, and Unicode support.[46] Python?3.0, released on 3 December 2008, with many of its major features backported to Python?2.6.x[47] and 2.7.x. Releases of Python?3 include the 2to3 utility, which automates the translation of Python?2 code to Python?3.[48]

Python 2.7's end-of-life was initially set for 2015, then postponed to 2020 out of concern that a large body of existing code could not easily be forward-ported to Python?3.[49][50] No further security patches or other improvements will be released for it.[51][52] Currently only 3.8 and later are supported (2023 security issues were fixed in e.g. 3.7.17, the final 3.7.x release[53]). While Python 2.7 and older is officially unsupported, a different unofficial Python implementation, PyPy, continues to support Python 2, i.e. "2.7.18+" (plus 3.9 and 3.10), with the plus meaning (at least some) "backported security updates".[54]

In 2021 (and again twice in 2022), security updates were expedited, since all Python versions were insecure (including 2.7[55]) because of security issues leading to possible remote code execution[56] and web-cache poisoning.[57] In 2022, Python?3.10.4 and 3.9.12 were expedited[58] and 3.8.13, because of many security issues.[59] When Python?3.9.13 was released in May 2022, it was announced that the 3.9 series (joining the older series 3.8 and 3.7) would only receive security fixes in the future.[60] On 7 September 2022, four new releases were made due to a potential denial-of-service attack: 3.10.7, 3.9.14, 3.8.14, and 3.7.14.[61][62]

As of October?2023, Python 3.12 is the stable release, and 3.12 and 3.11 are the only versions with active (as opposed to just security) support. Notable changes in 3.11 from 3.10 include increased program execution speed and improved error reporting.[63]

Python 3.12 adds syntax (and in fact every Python since at least 3.5 adds some syntax) to the language, the new (soft) keyword type (recent releases have added a lot of typing support e.g. new type union operator in 3.10), and 3.11 for exception handling, and 3.10 the match and case (soft) keywords, for structural pattern matching statements. Python 3.12 also drops outdated modules and functionality, and future versions will too, see below in Development section.

Python 3.11 claims to be between 10 and 60% faster than Python 3.10, and Python 3.12 adds another 5% on top of that. It also has improved error messages, and many other changes.

Since 27?June?2023, Python 3.8 is the oldest supported version of Python (albeit in the 'security support' phase), due to Python 3.7 reaching end-of-life.[64]

Design philosophy and features[edit]

Python is a multi-paradigm programming language. Object-oriented programming and structured programming are fully supported, and many of their features support functional programming and aspect-oriented programming (including metaprogramming[65] and metaobjects).[66] Many other paradigms are supported via extensions, including design by contract[67][68] and logic programming.[69]

Python uses dynamic typing and a combination of reference counting and a cycle-detecting garbage collector for memory management.[70] It uses dynamic name resolution (late binding), which binds method and variable names during program execution.

Its design offers some support for functional programming in the Lisp tradition. It has filter,mapandreduce functions; list comprehensions, dictionaries, sets, and generator expressions.[71] The standard library has two modules (itertools and functools) that implement functional tools borrowed from Haskell and Standard ML.[72]

Its core philosophy is summarized in the Zen of Python (PEP 20), which includes aphorisms such as:[73]

  • Beautiful is better than ugly.
  • Explicit is better than implicit.
  • Simple is better than complex.
  • Complex is better than complicated.
  • Readability counts.

Rather than building all of its functionality into its core, Python was designed to be highly extensible via modules. This compact modularity has made it particularly popular as a means of adding programmable interfaces to existing applications. Van Rossum's vision of a small core language with a large standard library and easily extensible interpreter stemmed from his frustrations with ABC, which espoused the opposite approach.[40]

Python strives for a simpler, less-cluttered syntax and grammar while giving developers a choice in their coding methodology. In contrast to Perl's "there is more than one way to do it" motto, Python embraces a "there should be one—and preferably only one—obvious way to do it" philosophy.[73] Alex Martelli, a Fellow at the Python Software Foundation and Python book author, wrote: "To describe something as 'clever' is not considered a compliment in the Python culture."[74] One benefit of this approach is greater consistency across the Python user communities and shared understanding of the coding principles.

Python's developers usually strive to avoid premature optimization and reject patches to non-critical parts of the CPython reference implementation that would offer marginal increases in speed at the cost of clarity.[75] Execution speed can be improved by moving speed-critical functions to extension modules written in languages such as C, or by using a just-in-time compiler like PyPy. It is also possible to cross-compile to other languages, but it either doesn't provide the full speed-up that might be expected, since Python is a very dynamic language, or a restricted subset of Python is compiled, and possibly semantics are slightly changed.[76] Python's developers aim for it to be fun to use. This is reflected in its name—a tribute to the British comedy group Monty Python[77]—and in occasionally playful approaches to tutorials and reference materials, such as the use of the terms "spam" and "eggs" (a reference to a Monty Python sketch) in examples, instead of the often-used "foo" and "bar".[78][79]

A common neologism in the Python community is pythonic, which has a wide range of meanings related to program style. "Pythonic" code may use Python idioms well, be natural or show fluency in the language, or conform with Python's minimalist philosophy and emphasis on readability. Code that is difficult to understand or reads like a rough transcription from another programming language is called unpythonic.[80][81]

要查看或添加评论,请登录

Yogalakshmi Yoga的更多文章

  • CYBERSPACE

    CYBERSPACE

    Cyberspace is an interconnected digital environment. It is a type of virtual world popularized with the rise of the…

  • GASTROENTROLOGY

    GASTROENTROLOGY

    Citing from Egyptian papyri, John F. Nunn identified significant knowledge of gastrointestinal diseases among…

    1 条评论
  • ORGAN PRINTING

    ORGAN PRINTING

    Organ printing utilizes techniques similar to conventional 3D printing where a computer model is fed into a printer…

  • CLOUD COMPUTING

    CLOUD COMPUTING

    The United States National Institute of Standards and Technology's definition of cloud computing identifies "five…

  • HTML

    HTML

    The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web…

  • Physiology

    Physiology

    Physiology (/?f?zi??l?d?i/; from Ancient Greek φ?σι? (phúsis) 'nature, origin', and -λογ?α (-logía) 'study of')[1] is…

  • Ecology

    Ecology

    Ecology is the study of organisms and how they interact with the environment around them. An ecologist studies the…

  • DNA

    DNA

    Deoxyribonucleic acid (abbreviated DNA) is the molecule that carries genetic information for the development and…

  • HEALTH and WELL-BEING

    HEALTH and WELL-BEING

    Physical well-being is much more than good health. It is the direct result of lifestyle choices and our behaviors…

  • AZURE:

    AZURE:

    Microsoft Azure, often referred to as Azure ( is a cloud computing platform run by Microsoft, which offers access…

社区洞察

其他会员也浏览了