# Wbudowane funkcje

Interpreter Pythona ma wbudowane wiele funkcji i typów, które zawsze są dostępne. Spisane są tutaj w kolejności alfabetycznej.

Wbudowane funkcje
A `abs()` `aiter()` `all()` `anext()` `any()` `ascii()` B `bin()` `bool()` `breakpoint()` `bytearray()` `bytes()` C `callable()` `chr()` `classmethod()` `compile()` `complex()` D `delattr()` `dict()` `dir()` `divmod()` | E `enumerate()` `eval()` `exec()` F `filter()` `float()` `format()` `frozenset()` G `getattr()` `globals()` H `hasattr()` `hash()` `help()` `hex()` I `id()` `input()` `int()` `isinstance()` `issubclass()` `iter()` | L `len()` `list()` `locals()` M `map()` `max()` `memoryview()` `min()` N `next()` O `object()` `oct()` `open()` `ord()` P `pow()` `print()` `property()` | R `range()` `repr()` `reversed()` `round()` S `set()` `setattr()` `sentinel()` `slice()` `sorted()` `staticmethod()` `str()` `sum()` `super()` T `tuple()` `type()` V `vars()` Z `zip()` _ `__import__()`

abs(number, /)

  Zwraca wartość bezwzględną liczby. Argument może być liczbą całkowitą, zmiennoprzecinkową lub obiektem implementującym `__abs__()`. Jeśli argument jest liczbą zespoloną, zwracany jest jej moduł.

aiter(async_iterable, /)

  Zwraca asynchroniczny iterator dla asynchronicznego iterable’a. Ekwiwalent wywołania `x.__aiter__()`.

  Uwaga: W przeciwieństwie do `iter()`, `aiter()` nie ma dwuargumentowego wariantu.

  Dodane w wersji 3.10.

all(iterable, /)

  Zwraca `True` jeśli wszystkie elementy iterable’a są prawdziwe (lub jeśli iterable jest pusty). Ekwiwalent kodu:

      def all(iterable):
          for element in iterable:
              if not element:
                  return False
          return True

awaitable anext(async_iterator, /)
awaitable anext(async_iterator, default, /)

  W przypadku oczekiwania zwraca następny element z podanego asynchronicznego iteratora lub wartość default, jeżeli jest ona podana, a iterator został wyczerpany.

  Jest to asynchroniczny wariant wbudowanej funkcji `next()` i zachowuje się podobnie.

  Wywołuje on metodę `__anext__()` async_iteratora, zwracając awaitable. Oczekiwanie zwraca następną wartość iteratora. Jeśli podano wartość default, jest ona zwracana, jeśli iterator zostanie wyczerpany, w przeciwnym razie zostanie podniesiony wyjątek `StopAsyncIteration`.

  Dodane w wersji 3.10.

any(iterable, /)

  Zwraca `True` jeśli jakikolwiek element iterable’a jest prawdziwy. Jeśli iterable jest pusty, zwraca `False`. Ekwiwalent kodu:

      def any(iterable):
          for element in iterable:
              if element:
                  return True
          return False

ascii(object, /)

  Tak jak `repr()`, zwraca ciąg znaków zawierający reprezentację obiektu, ale wypisuje znaki nie-ASCII w zwracanym przez `repr()` ciągu przy użyciu escape’ów `\x`, `\u` lub `\U`. Generuje ciąg znaków podobny do tego zwracanego przez `repr()` w Pythonie 2.

bin(integer, /)

  Konwertuje liczbę całkowitą do binarnego ciągu znaków z prefiksem „0b”. Wynik jest poprawnym wyrażeniem Pythona. Jeśli integer nie jest pythonowym obiektem `int`, musi definiować metodę `__index__()`, która zwraca liczbę całkowitą. Kilka przykładów:

      >>> bin(3)
      '0b11'
      >>> bin(-10)
      '-0b1010'

  Jeśli prefiks „0b” nie jest pożądany, możesz użyć któregoś z poniższych sposobów.

      >>> format(14, '#b'), format(14, 'b')
      ('0b1110', '1110')
      >>> f'{14:#b}', f'{14:b}'
      ('0b1110', '1110')

  Patrz również `enum.bin()` do reprezentowania ujemnych wartości w kodzie uzupełnień do dwóch.

  Zobacz też `format()` by uzyskać więcej informacji.

class bool(object=False, /)

  Zwraca wartość logiczną, tj. jedno z `True` lub `False`. Wartość argumentu jest konwertowana przy użyciu standardowej procedury testowania truth testing procedure. Jeśli argument jest fałszywy lub pominięty, zwraca `False`; w przeciwnym razie, zwraca `True`. Klasa `bool` jest podklasą klasy `int` (zobacz Numeric Types — int, float, complex). Nie może być dalej podklasowana. Jej jedynymi instancjami są `False` i `True` (zobacz Boolean Type - bool).

  Zmienione w wersji 3.7: Parametr jest teraz tylko-pozycyjny.

breakpoint(*args, **kws)

  Ta funkcja powoduje przejście do debuggera w miejscu wywołania. W szczególności wywołuje `sys.breakpointhook()`, przekazując do niego bezpośrednio `args` i `kws`. Domyślnie `sys.breakpointhook()` wywołuje funkcję `pdb.set_trace()` nie oczekującą argumentu. W tym przypadku jest to wyłącznie funkcja dla wygody, aby nie trzeba było jawnie importować `pdb` ani wpisywać tak dużo kodu, aby wejść do debuggera. Jednakże `sys.breakpointhook()` może być ustawiony na inną funkcję i `breakpoint()` automatycznie wywoła ją, pozwalając na przejście do wybranego debuggera. Jeśli `sys.breakpointhook()` nie jest dostępny, funkcja rzuci `RuntimeError`.

  Domyślnie zachowanie funkcji `breakpoint()` można zmienić za pomocą zmiennej środowiskowej `PYTHONBREAKPOINT`. Szczegółowe informacje można znaleźć w `sys.breakpointhook()`.

  Należy pamiętać, że nie jest to gwarantowane, jeśli `sys.breakpointhook()` został wymieniony.

  Rzuca auditing event `builtins.breakpoint` z argumentem `breakpointhook`.

  Dodane w wersji 3.7.

class bytearray(source=b'')
class bytearray(source, encoding, errors='strict')

  Zwraca nową tablicę bajtów. Klasa `bytearray` jest mutowalną sekwencją liczb całkowitych w zakresie 0 <= x < 256. Ma większość metod mutowalnych sekwencji, opisanych w Mutable Sequence Types, jak również większość metod, które ma typ `bytes`, patrz Bytes and Bytearray Operations.

  Opcjonalny parametr source może być użyty do inicjalizacji tablicy na kilka różnych sposobów:

  - Jeśli jest stringiem, musisz podać również parametr encoding (i opcjonalnie errors); `bytearray()` konwertuje string na bajty używając `str.encode()`.

  - Jeśli jest liczbą całkowitą, tablica będzie miała taki rozmiar i będzie zainicjowana bajtami zerowymi.

  - Jeśli jest to obiekt spełniający interfejs bufora, bufor tylko-do-odczytu obiektu zostanie użyty do zainicjowania tablicy bajtów.

  - Jeśli jest iterablem, musi być iterablem składającym się z liczb całkowitych w zakresie `0 <= x < 256`, które są użyte do zainicjowania tablicy.

  Bez argumentu tworzona jest tablica o rozmiarze 0.

  Zobacz też Binary Sequence Types — bytes, bytearray, memoryview i Bytearray Objects.

class bytes(source=b'')
class bytes(source, encoding, errors='strict')

  Zwraca nowy obiekt „bajtów”, który jest niemutowalną sekwencją liczb całkowitych z zakresu `0 <= x < 256`. `bytes` jest niemutowalną wersją `bytearray` – ma te same niemutujące metody i to samo zachowanie indeksowania i slice’owania.

  Argumenty konstruktora są interpretowane tak jak dla `bytearray()`.

  Obiekty bytes mogą być również tworzone z literałami, patrz String and Bytes literals.

  Zobacz też Binary Sequence Types — bytes, bytearray, memoryview, Bytes Objects i Bytes and Bytearray Operations.

callable(object, /)

  Zwraca `True` jeśli argument object jest wywoływalny, `False` jeśli nie. Jeśli zwraca `True`, nadal możliwe jest, że wywołanie nie powiedzie się, ale jeśli zwraca `False`, wywołanie object nigdy się nie powiedzie. Należy pamiętać, że klasy są wywoływalne (wywołanie klasy zwraca nową instancję); instancje są wywoływalne, jeśli ich klasa ma metodę `__call__()`.

  Dodane w wersji 3.2: Ta funkcja była wpierw usunięta w Pythonie 3.0 a następnie przywrócona w Pythonie 3.2.

chr(codepoint, /)

  Zwraca ciąg znaków reprezentujący znak dla podanego punktu kodowego Unicode. Na przykład `chr(97)` zwraca ciąg znaków `'a'`, a `chr(8364)` zwraca ciąg `'€'`. Jest odwrotnością `ord()`.

  Poprawnym zakresem argumentu są wartości od 0 do 1 114 111 (0x10FFFF w systemie szesnastkowym). Dla wartości poza tym zakresem zostanie rzucony `ValueError`.

@classmethod

  Przekształca metodę w metodę klasową.

  Metoda klasowa otrzymuje klasę jako niejawny pierwszy argument, podobnie jak metoda instancji otrzymuje instancję. Aby zadeklarować metodę klasową, użyj tego idiomu:

      class C:
          @classmethod
          def f(cls, arg1, arg2): ...

  Forma `@classmethod` jest dekoratorem funkcji – szczegóły znajdziesz w Function definitions.

  Metoda klasowa może być wywoływana albo na klasie (na przykład `C.f()`) albo na instancji (na przykład `C().f()`). Instancja jest ignorowana, brana jest pod uwagę tylko jej klasa. Jeśli metoda klasowa jest wywołana dla klasy dziedziczącej, obiekt klasy dziedziczącej jest przekazywany jako pierwszy argument.

  Metody klasowe różnią się od statycznych metod C++ lub Javy. Jeśli chcesz takie, sprawdź `staticmethod()` w tej sekcji. Więcej informacji o metodach klasowych znajdziesz w The standard type hierarchy.

  Zmienione w wersji 3.9: Metody klasowe mogą teraz opakowywać inne deskryptory, takie jak `property()`.

  Zmienione w wersji 3.10: Metody klasowe dziedziczą teraz atrybuty metod (`__module__`, `__name__`, `__qualname__`, `__doc__` i `__annotations__`) i mają nowy atrybut `__wrapped__`.

  Zdezaprobowane w wersji 3.11, usunięte w wersji 3.13: Metody klas nie mogą już opakowywać innych deskryptorów takich jak `property()`.

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1, *, module=None)

  Kompiluje source do obiektu kodu lub obiektu AST. Obiekty kodu mogą wyć wykonywane przy użyciu `exec()` lub `eval()`. source może być zwykłym ciągiem znaków, ciągiem bajtów lub obiektem AST. W dokumentacji modułu `ast` znajdziesz informacje o tym jak pracować z obiektami AST.

  Argument filename powinien dawać plik, z którego kod został przeczytany; przekaż jakąś rozpoznawalną wartość, jeśli nie został przeczytany z pliku (często używa się `'<string>'`).

  Argument mode określa, jaki rodzaj kodu ma zostać skompilowany; może mieć wartość `'exec'` jeśli source składa się z sekwencji instrukcji, `'eval'` jeśli składa się z jednego wyrażenia lub `'single'` jeśli składa się z jednej interaktywnej instrukcji (w ostatnim przypadku, instrukcje wyrażeń, które ewaluują się do czegoś innego niż `None`, zostaną wydrukowane na standardowe wyjście).

  Opcjonalne argumenty flags i dont_inherit kontrolują, które opcje kompilatora powinny być aktywowane i które przyszłe funkcje powinne być dozwolone. Jeśli żaden z nich nie jest obecny (lub oba są zerowe), kod jest kompilowany z tymi samymi flagami, które wpływają na kod wywołujący `compile()`. Jeśli argument flags jest podany, a dont_inherit nie jest (lub wynosi zero), to opcje kompilatora i przyszłe instrukcje określone przez argument flags są używane w dodatku do tych, które i tak byłyby użyte. Jeśli dont_inherit jest niezerową liczbą całkowitą, to argument flags jest nim – flagi (przyszłe funkcje i opcje kompilatora) w otaczającym kodzie są ignorowane.

  Opcje kompilatora i przyszłe instrukcja są określone przez bity, które mogą być łączone bitowo w celu określenia wielu opcji. Pole bitowe wymagane do określenia danej przyszłej funkcji można znaleźć jako `compiler_flag` atrybut na instancji `_Feature` w module `__future__` . Flagi kompilatora można znaleźć w module `ast` , z prefiksem `PyCF_`.

  Wartość argumentu optimize określa poziom optymalizacji kompilatora; wartość domyślna `-1` wybiera poziom optymalizacji interpretera podany przez opcje `-O`. Wyraźne poziomy to `0` (brak optymalizacji; `__debug__` to prawda), `1` (asercje są usuwane, `__debug__` to fałsz) lub `2` (docstrings są również usuwane).

  The optional argument module specifies the module name. It is needed to unambiguous filter syntax warnings by module name.

  To funkcja rzuci `SyntaxError` lub `ValueError` jeśli skompilowane źródło jest nieprawidłowe.

  Jeśli chcesz przeanalizować kod Python do jego reprezentacji AST, zobacz `ast.parse()`.

  Rzuci zdarzenie auditing `compile` z argumentem `source` i `filename`. To zdarzenie może być również rzucone przez niejawną kompilację.

  Informacja

  Podczas kompilacji napisem z kodem wielowierszowym w trybie `'single'` lub `'eval'`, dane wejściowe muszą być zakończone co najmniej jedną znak nowej lini. Ma to na celu ułatwienie wykrywania niekompletnych i kompletnych instrukcja w module `code` .

  Ostrzeżenie

  Możliwe jest zawieszenie interpretera Python z wystarczająco dużym/złożonym napisem podczas kompilacji do obiektu AST z powodu ograniczeń głębokości stosu w kompilatorze AST Python.

  Zmienione w wersji 3.2: Zezwolono na używanie nowej linii w systemach Windows i Mac. Ponadto wprowadzanie danych w trybie `'exec'` nie musi już kończyć się nową linią. Dodano funkcję optimize parametr.

  Zmienione w wersji 3.5: Poprzednio, `TypeError` został rzucony gdy napotkano bajty null w source.

  Dodane w wersji 3.8: `ast.PyCF_ALLOW_TOP_LEVEL_AWAIT` można teraz przekazywać we flagach, aby włączyć obsługę najwyższego poziomu `await`, `async for` i `async with`.

  Dodane w wersji 3.15: Added the module parameter.

class complex(number=0, /)
class complex(string, /)
class complex(real=0, imag=0)

  Konwertowanie pojedynczego napisu lub liczby na liczba zespolona lub tworzenie liczba zespolona z części rzeczywistej i urojonej.

  Przykłady:

      >>> complex('+1.23')
      (1.23+0j)
      >>> complex('-4.5j')
      -4.5j
      >>> complex('-1.23+4.5j')
      (-1.23+4.5j)
      >>> complex('\t( -1.23+4.5J )\n')
      (-1.23+4.5j)
      >>> complex('-Infinity+NaNj')
      (-inf+nanj)
      >>> complex(1.23)
      (1.23+0j)
      >>> complex(imag=-4.5)
      -4.5j
      >>> complex(-1.23, 4.5)
      (-1.23+4.5j)

  Jeśli argument jest napisem, musi zawierać albo część rzeczywistą (w tym samym formacie co `float()`), albo część urojoną (w tym samym formacie, ale z przyrostkiem `'j'` lub `'J'` ), albo zarówno część rzeczywistą, jak i urojoną (znak części urojonej jest w tym przypadku obowiązkowy). Wartość napis może być opcjonalnie otoczona białymi znakami i okrągłymi nawiasami `'('` i `')'`, które są ignorowane. napis nie może zawierać białych znaków między `'+'`, `'-'`, przyrostkiem `'j'` lub `'J'` a liczbą dziesiętną. Na przykład, `complex('1+2j')` jest w porządku, ale `complex('1 + 2j')` rzuci `ValueError` . Dokładniej, dane wejściowe muszą być zgodne z regułą produkcji `complexvalue` w poniższej gramatyce, po usunięciu nawiasów oraz początkowych i końcowych znaków:

      complexvalue: floatvalue |
                    floatvalue ("j" | "J") |
                    floatvalue sign absfloatvalue ("j" | "J")

  Jeśli argument jest liczbą, konstruktor służy jako konwersja numeryczna, podobnie jak `int` i `float`. Dla ogólnego obiektu Python `x` , `complex(x)` deleguje do `x.__complex__()`. Jeśli `__complex__()` nie jest zdefiniowane, to spada z powrotem do `__float__()`. Jeśli `__float__()` nie jest zdefiniowane, to spada z powrotem do `__index__()`.

  Jeśli podano dwa argumenty lub argument nazwany, każdy argument może być dowolnego typu liczbowego (w tym liczbą zespoloną). Jeśli oba argumenty są liczbami rzeczywistymi, zwracana jest liczba zespolona ze składnikiem rzeczywistym real i składnikiem urojonym imag. Jeśli oba argumenty są liczbami zespolonymi, zwracana jest liczba zespolona ze składnikiem rzeczywistym `real.real-imag.imag` i składnikiem urojonym `real.imag+imag.real`. Jeśli jeden z argumentów jest liczbą rzeczywistą, w powyższych wyrażeniach używany jest tylko jego składnik rzeczywisty.

  Zobacz też `complex.from_number()`, która akceptuje tylko jeden argument numeryczny.

  Jeśli wszystkie argumenty zostaną pominięte, zwraca `0j` .

  Typ Complex został opisany na stronie Numeric Types — int, float, complex.

  Zmienione w wersji 3.6: Dozwolone jest grupowanie cyfr za pomocą podkreślników, tak jak w literałach kodu.

  Zmienione w wersji 3.8: Powraca do `__index__()`, jeśli `__complex__()` i `__float__()` nie są zdefiniowane.

  Niezalecane od wersji 3.14: Przekazywanie liczby zespolonej przez argumenty real lub imag jest teraz niezalecane; powinna ona być przekazywana przez pojedynczy argument pozycyjny.

delattr(object, name, /)

  Jest to krewny `setattr()`. Argumenty są obiektem i napisem. Napis musi być nazwą jednego z atrybut obiektu. Funkcja usuwa nazwany atrybut, pod warunkiem, że obiekt na to pozwala. Na przykład, `delattr(x, 'foobar')` jest równoważne `del x.foobar`. name nie musi być identyfikatorem Python (zobacz `setattr()`).

class dict(**kwargs)
class dict(mapping, /, **kwargs)
class dict(iterable, /, **kwargs)

  Utwórz nowy słownik. Obiekt `dict` jest klasą słownik. Dokumentacja dotycząca tej klasy znajduje się na stronach `dict` i Mapping types — dict, frozendict.

  Inne kontenery można znaleźć w klasach wbudowanych `list` , `set` i `tuple`, a także moduł `collections` .

dir()
dir(object, /)

  Bez argumentów, zwraca listę nazw w bieżącym zakresie lokalnym. Z argumentem, próbuje zwrócić listę prawidłowych atrybutów dla tego obiektu.

  Jeśli obiekt posiada metodę o nazwie `__dir__()`, metoda ta zostanie wywołana i musi zwracać listę atrybut. Pozwala to obiektom, które implementują niestandardowe `__getattr__()` lub `__getattribute__()` funkcje na dostosowanie sposobu, w jaki `dir()` zgłasza ich atrybuty.

  Jeśli obiekt nie udostępnia `__dir__()`, funkcja stara się zebrać informacje z `__dict__` atrybut obiektu, jeśli jest zdefiniowany, oraz z jego obiektu typu. Wynikowa lista niekoniecznie jest kompletna i może być niedokładna, jeśli obiekt ma niestandardowy `__getattr__()`.

  Mechanizm domyślny `dir()` zachowuje się inaczej w przypadku różnych typów obiektów, ponieważ stara się uzyskać najbardziej istotne, a nie kompletne informacje:

  - Jeśli obiekt jest obiektem moduł, lista zawiera nazwy obiektów moduł atrybutow.

  - Jeśli obiekt jest obiektem typu lub klasy, lista zawiera nazwy jego atrybut i rekurencyjnie atrybut jego baz.

  - W przeciwnym razie lista zawiera nazwy atrybut» obiektow, nazwy atrybut jego klasy i rekurencyjnie atrybut klas bazowych jego klasy.

  Wynikowa lista jest posortowana alfabetycznie. Na przykład:

      >>> import struct
      >>> dir()   # show the names in the module namespace
      ['__builtins__', '__name__', 'struct']
      >>> dir(struct)   # show the names in the struct module
      ['Struct', '__all__', '__builtins__', '__doc__', '__file__',
       '__initializing__', '__loader__', '__name__', '__package__',
       '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
       'unpack', 'unpack_from']
      >>> class Shape:
      ...     def __dir__(self):
      ...         return ['area', 'perimeter', 'location']
      ...
      >>> s = Shape()
      >>> dir(s)
      ['area', 'location', 'perimeter']

  Informacja

  Ponieważ `dir()` jest dostarczany głównie jako udogodnienie do użycia w interaktywnym wierszu polecenia, stara się dostarczyć interesujący zestaw nazw bardziej niż rygorystycznie lub konsekwentnie zdefiniowany zestaw nazw, a jego szczegółowy zachowanie może się zmieniać w różnych wydaniach. Na przykład, atrybut metaklasy nie znajduje się na liście wyników, gdy argument jest klasą.

divmod(a, b, /)

  Weź dwie (niezłożone) liczby jako argumenty i zwraca parę liczb składającą się z ich ilorazu i reszty, gdy używasz liczba całkowita dzielenia. W przypadku mieszanych typów operandów obowiązują reguły dla binarnych operatorów arytmetycznych. Dla liczb całkowitych wynik jest taki sam jak `(a // b, a % b)`. Dla liczb zmiennoprzecinkowych wynikiem jest `(q, a % b)`, gdzie q jest zwykle `math.floor(a / b)`, ale może być o 1 mniejsze. W każdym przypadku `q * b + a % b` jest bardzo zbliżone do a, jeśli `a % b` jest niezerowe, to ma taki sam znak jak b i `0 <= abs(a % b) < abs(b)`.

enumerate(iterable, start=0)

  Zwraca obiekt wyliczeniowy. iterable musi być sekwencją, iteratorem lub innym obiektem obsługującym iterację. Metoda `__next__()` iteratora zwróconego przez `enumerate()` zwraca dwukrotkę zawierającą licznik (od start, który domyślnie wynosi 0) i wartości uzyskane z iteracji na argumencie iterable.

      >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
      >>> list(enumerate(seasons))
      [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
      >>> list(enumerate(seasons, start=1))
      [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

  Odpowiednik:

      def enumerate(iterable, start=0):
          n = start
          for elem in iterable:
              yield n, elem
              n += 1

eval(source, /, globals=None, locals=None)
  Parametry:

    - source (`str` | code object) – Expresja Python.

    - globals (`dict` | `frozendict` | `None`) – Globalna przestrzeń nazw (domyślny: `None`).

    - locals (mapping | `None`) – Lokalna przestrzeń nazw (domyślny: `None`).

  Zwraca:

    Wynik obliczonej ekspresji.

  rzuca:

    Błędy składni są zgłaszane jako wyjątki.

  Ostrzeżenie

  Ta funkcja wykonuje dowolny kod. Wywołanie go z niezaufanymi danymi wejściowymi dostarczonymi przez użytkownika prowadzi do luk w zabezpieczeniach.

  Argument source jest analizowany i ewaluowany jako wyrażenie Python (technicznie rzecz biorąc, lista warunków) przy użyciu mapowań globals i locals jako globalnej i lokalnej przestrzeni nazw. Jeśli słownik globals jest obecny i nie zawiera wartości dla klucza `__builtins__`, odwołanie do słownika wbudowanego modułu `builtins` jest wstawiane pod tym kluczem, zanim source zostanie przeanalizowane. Nadpisywanie `__builtins__` może służyć do ograniczenia lub zmiany dostępnych nazw, ale nie jest to mechanizm zabezpieczający: wykonywany kod nadal ma dostęp do wszystkich wbudowanych funkcji. Jeśli mapowanie locals zostanie pominięte, domyślnie będzie to słownik globals. Jeśli oba mapowania są pominięte, wyrażenie jest wykonywane z globals i locals w środowisku, w którym wywoływany jest `eval()`. Uwaga, eval() będzie miał dostęp do zagnieżdżonych zakresów (non-locals) w otaczającym środowisku tylko wtedy, gdy są one już przywoływane w zakresie, który wywołuje `eval()` (np. poprzez instrukcję `nonlocal`).

  Przykład:

      >>> x = 1
      >>> eval('x+1')
      2

  Ta funkcja może być również używana do wykonywania dowolnych obiektów kodu (takich jak te utworzone przez `compile()`). W tym przypadku należy przekazać obiekt kodu zamiast napisu. Jeśli obiekt kodu został skompilowany z `'exec'` jako mode argument, `eval()` wartością zwracana będzie `None`.

  Wskazówki: dynamiczne wykonywanie instrukcji jest obsługiwane przez `exec()` funkcja . Adresy `globals()` i `locals()` funkcje zwracaja określaaą odpowiednio bieżący globalny i lokalny adres słownika, który może być przydatny do przekazania do użycia przez adresy `eval()` lub `exec()`.

  Jeśli podane źródło to napis, początkowe i końcowe spacje i tabulatory są usuwane.

  Zobacz `ast.literal_eval()` dla funkcja do oceny napisów z wyrażeniami zawierającymi tylko literały.

  Rzuci zdarzenie auditing event `exec` z obiektem kodu jako argument. Zdarzenia kompilacji kodu mogą być również rzucone.

  Zmienione w wersji 3.13: Funkcje globals i locals argumenty mogą być teraz przekazywane jako słowa kluczowe.

  Zmienione w wersji 3.13: Semantyka przestrzeni nazw domyślnych locals została dostosowana zgodnie z opisem dla wbudowanej `locals()` .

  Zmienione w wersji 3.15: globals can now be a `frozendict`.

exec(source, /, globals=None, locals=None, *, closure=None)

  Ostrzeżenie

  Ta funkcja wykonuje dowolny kod. Wywołanie go z niezaufanymi danymi wejściowymi dostarczonymi przez użytkownika prowadzi do luk w zabezpieczeniach.

  Ta funkcja obsługuje dynamiczne wykonywanie kodu Python. source musi być albo napis albo obiektem kodu. Jeśli jest to napis, napis jest analizowany jako zestaw instrukcji Pythona, które sa następnie wykonywany (chyba że wystąpi błąd składni). [1] Jeśli jest to obiekt kodu, jest on po prostu wykonywany. We wszystkich przypadkach wykonywany kod powinien być prawidłowy jako plik wejściowy (patrz sekcja File input w Podręczniku referencyjnym). Należy pamiętać, że wartości `nonlocal`, `yield` i `return` instrukcije nie mogą być używane poza definicjami funkcji, nawet w kontekście kodu przekazywanego do `exec()` . Wartość zwracana to `None`.

  We wszystkich przypadkach, jeśli części opcjonalne są pominięte, kod jest wykonywany w bieżącym zakresie. Jeśli podano tylko globals, musi to być słownik (a nie podklasa z słownikem), który będzie używany zarówno dla zmiennych globalnych, jak i lokalnych. Jeśli podano globals i locals, są one używane odpowiednio dla zmiennych globalnych i lokalnych. Jeśli podano locals, może to być dowolny obiekt mapowania. Należy pamiętać, że na poziomie moduł, globals i locals są tym samym słownikem.

  Informacja

  Gdy `exec` pobiera dwa oddzielne obiekty jako globals i locals, kod zostanie wykonany tak, jakby był osadzony w definicja klasy. Oznacza to, że funkcja i klasy zdefiniowane w wykonywanym kodzie nie będą mogły uzyskać dostępu do zmiennych przypisanych na najwyższym poziomie (ponieważ zmienne „najwyższego poziomu” są traktowane jako zmienne klasowe w definicja klasy).

  Jeśli słownik globals nie zawiera wartości dla klucza `__builtins__`, odwołanie do słownika z wbudowanego modułu `builtins` jest wstawiane pod tym kluczem. Nadpisywanie `__builtins__` może służyć do ograniczenia lub zmiany dostępnych nazw, ale nie jest to mechanizm zabezpieczający: wykonywany kod nadal ma dostęp do wszystkich wbudowanych funkcji.

  Wyrażenie closure określa zamknięcie - krotka zmiennych komórkowych. Jest ważne tylko wtedy, gdy obiekt jest obiektem kodu zawierającym wolne (zamknięcie) zmienne. Długość krotka musi dokładnie odpowiadać długości `co_freevars` atrybutem obiektu kodu.

  Rzuci zdarzenie auditing event `exec` z obiektem kodu jako argument. Zdarzenia kompilacji kodu mogą być również rzucone.

  Informacja

  Adresy wbudowane funkcji `globals()` i `locals()` zwraca to odpowiednio bieżąca globalna i lokalna przestrzeń nazw, które mogą być przydatne do przekazania jako drugi i trzeci argument do `exec()`.

  Informacja

  Elementy domyślne locals działają w sposób opisany dla funkcji `locals()` poniżej. Przekaż jawne locals słownik jeśli chcesz zobaczyć efekty kodu na locals po funkcji `exec()` .

  Zmienione w wersji 3.11: Dodano parametr zamknięcie.

  Zmienione w wersji 3.13: Funkcje globals i locals argumenty mogą być teraz przekazywane jako słowa kluczowe.

  Zmienione w wersji 3.13: Semantyka przestrzeni nazw domyślnych locals została dostosowana zgodnie z opisem dla wbudowanej `locals()` .

  Zmienione w wersji 3.15: globals can now be a `frozendict`.

filter(function, iterable, /)

  Konstruuje iterator z tych elementów iterable, dla których funkcja jest prawdą. iterable może być sekwencją, kontenerem obsługującym iterację lub iterator. Jeśli funkcja jest `None`, zakłada się tożsamość funkcji, to znaczy wszystkie elementy iterable, które są fałszywe, są usuwane.

  Należy zauważyć, że `filter(function, iterable)` jest równoważne wyrażeniu generator `(item for item in iterable if function(item))` jeśli funkcja nie jest `None` i `(item for item in iterable if item)` jeśli funkcja jest `None`.

  Zobacz `itertools.filterfalse()` dla komplementarnych funkci ktore zwracaja elementy iterable dla których funkcja jest fałszywe.

class float(number=0.0, /)
class float(string, /)

  Zwraca liczba zmiennoprzecinkowa zbudowana z liczby lub napisu.

  Przykłady:

      >>> float('+1.23')
      1.23
      >>> float('   -12345\n')
      -12345.0
      >>> float('1e-003')
      0.001
      >>> float('+1E6')
      1000000.0
      >>> float('-Infinity')
      -inf

  Jeśli argument jest napisem, powinien zawierać liczbę dziesiętną, opcjonalnie poprzedzoną znakiem i opcjonalnie osadzoną w białych znakach. Znak opcjonalny może być `'+'` lub `'-'`; znak `'+'` nie ma wpływu na otrzymaną wartość. argument może być również napisem reprezentującym NaN (not-a-number) lub dodatnią lub ujemną nieskończoność. Dokładniej, dane wejściowe muszą być zgodne z regułą produkcji `floatvalue` w poniższej gramatyce, po usunięciu początkowych i końcowych białych znaków znak:

      sign:          "+" | "-"
      infinity:      "Infinity" | "inf"
      nan:           "nan"
      digit:         <a Unicode decimal digit, i.e. characters in Unicode general category Nd>
      digitpart:     digit (["_"] digit)*
      number:        [digitpart] "." digitpart | digitpart ["."]
      exponent:      ("e" | "E") [sign] digitpart
      floatnumber:   number [exponent]
      absfloatvalue: floatnumber | infinity | nan
      floatvalue:    [sign] absfloatvalue

  Wielkość liter nie ma znaczenia, więc na przykład „inf”, „Inf”, „INFINITY” i „iNfINity” są akceptowalnymi pisowniami dla dodatniej nieskończoności.

  W przeciwnym razie, jeśli argument jest liczba całkowita lub liczbą zmiennoprzecinkową, zwracana jest liczba zmiennoprzecinkowa o tej samej wartości (w zakresie precyzji zmiennoprzecinkowej Python). Rzuci jeśli argument jest poza zakresem liczby zmiennoprzecinkowej Python, zwrócona zostanie `OverflowError`.

  W przypadku ogólnego obiektu Python `x` , `float(x)` deleguje do `x.__float__()`. Jeśli `__float__()` nie jest zdefiniowana, to spada z powrotem do `__index__()`.

  Zobacz też `float.from_number()`, która akceptuje tylko jeden argument numeryczny.

  Jeśli nie podano argumentu, zwracane jest `0.0`.

  Typ float został opisany na stronie Numeric Types — int, float, complex.

  Zmienione w wersji 3.6: Dozwolone jest grupowanie cyfr za pomocą podkreślników, tak jak w literałach kodu.

  Zmienione w wersji 3.7: Parametr jest teraz tylko-pozycyjny.

  Zmienione w wersji 3.8: Powraca do `__index__()`, jeśli `__float__()` nie jest zdefiniowane.

format(value, format_spec='', /)

  Konwertuje value na „formatted” reprezentację, kontrolowaną przez format_spec. Interpretacja format_spec będzie zależeć od typu value argument; jednak istnieje standardowa składnia formatowania, która jest używana przez większość typów wbudowanych: Format specification mini-language.

  Parametr domyślny format_spec jest pustym napisem, co zwykle daje taki sam efekt jak wywołanie `str(value)`.

  Wywołanie `format(value, format_spec)` jest tłumaczone na `type(value).__format__(value, format_spec)`, które omija instancję słownika podczas wyszukiwania metody `__format__()` wartości . Wyjątek `TypeError` jest rzucony, jeśli wyszukiwanie metody osiągnie `object` i format_spec jest niepusty, lub jeśli format_spec lub wartość zwracana nie są napisem.

  Zmienione w wersji 3.4: `object().__format__(format_spec)` rzuci `TypeError` jeśli format_spec nie jest pustym napisem.

class frozenset(iterable=(), /)

  Zwraca nowy obiekt `frozenset`, opcjonalnie z elementami pobranymi z iterable. `frozenset` jest klasą wbudowaną. Dokumentacja dotycząca tej klasy znajduje się na stronach `frozenset` i Set Types — set, frozenset.

  Dla innych kontenerów zobacz klasy wbudowane `set` , `list`, `tuple` i `dict`, jak również moduł `collections` .

getattr(object, name, /)
getattr(object, name, default, /)

  Zwraca wartość nazwanego atrybut obiektu object. name musi być napisem. Jeśli napis jest nazwą jednego z atrybut obiektu, wynikiem jest wartość tego atrybutu. Na przykład, `getattr(x, 'foobar')` jest równoważne `x.foobar`. Jeśli nazwany atrybut nie istnieje, default jest zwracany, jeśli został podany, w przeciwnym razie `AttributeError` jest rzucony. name nie musi być identyfikatorem Pythona (Zobacz `setattr()`).

  Informacja

  Ponieważ manipulowanie nazwami prywatnymi odbywa się w czasie kompilacji, należy ręcznie zmanipulować nazwę prywatną atrybutu (atrybuty z dwoma wiodącymi podkreśleniami), aby pobrać ją za pomocą `getattr()`.

globals()

  Zwraca słownik implementującą bieżącą przestrzeń nazw moduł. W przypadku kodu w funkcja, jest on ustawiany, gdy funkcja jest zdefiniowana i pozostaje taki sam niezależnie od tego, gdzie wywoływana jest funkcja.

hasattr(object, name, /)

  Argumenty to obiekt i napis. Wynikiem jest `True` jeśli napis jest nazwą jednego z obiektów atrybut, `False` jeśli nie. (Jest to zaimplementowane poprzez wywołanie `getattr(object, name)` i sprawdzenie, czy rzucone jest `AttributeError` ).

hash(object, /)

  Zwraca wartość skrótu obiektu (jeśli taki posiada). Wartości skrótu są liczbami całkowitymi. Są one używane do szybkiego porównywania kluczy słownika podczas wyszukiwania słownika. Wartości numeryczne, które są równe, mają tę samą wartość skrótu (nawet jeśli są różnych typów, jak w przypadku 1 i 1.0).

  Informacja

  W przypadku obiektów z niestandardowymi metodami `__hash__()` należy pamiętać, że `hash()` obcina wartość zwracaną w oparciu o szerokość bitową maszyny hosta.

help()
help(request)

  Wywołuje system pomocy wbudowany. (Ta funkcja jest przeznaczona do użytku interaktywnego.) Jeśli nie podano argumentu, interaktywny system pomocy uruchamia się na konsoli interpretera. Jeśli argument jest napisem, to napis jest wyszukiwany jako nazwa modułu, funkcja, klasa, metoda, słowo kluczowe lub temat dokumentacji, a strona pomocy jest drukowana na konsoli. Jeśli argument jest jakimkolwiek innym rodzajem obiektu, generowana jest strona pomocy dotycząca tego obiektu.

  Zauważ, że jeśli ukośnik (/) pojawia się na liście parametrów w funkcji podczas wywoływania `help()`, oznacza to, że parametry przed ukośnikiem są tylko-pozycyjne. Aby uzyskać więcej informacji, zobacz wpis FAQ na temat parametrów tylko-pozycyjnych .

  Ta funkcja jest dodawana do przestrzeni nazw wbudowanych przez moduł `site` .

  Zmienione w wersji 3.4: Zmiany do `pydoc` i `inspect` oznaczają, że zgłoszone sygnatury dla callables są teraz bardziej kompleksowe i spójne.

hex(integer, /)

  Konwertuje liczbę całkowitą na zapis szesnastkowy małymi literami poprzedzony „0x”. Jeśli integer nie jest pythonowym obiektem `int` , musi definiować metodę `__index__()`, która zwraca liczbę całkowitą. Kilka przykładów:

      >>> hex(255)
      '0xff'
      >>> hex(-42)
      '-0x2a'

  Jeśli chcesz przekonwertować liczbe całkowita na wielką lub małą liczbę szesnastkową napis z prefiksem lub bez, możesz użyć jednego z poniższych sposobów:

      >>> '%#x' % 255, '%x' % 255, '%X' % 255
      ('0xff', 'ff', 'FF')
      >>> format(255, '#x'), format(255, 'x'), format(255, 'X')
      ('0xff', 'ff', 'FF')
      >>> f'{255:#x}', f'{255:x}', f'{255:X}'
      ('0xff', 'ff', 'FF')

  Zobacz też `format()` by uzyskać więcej informacji.

  Zobacz także `int()`, aby przekonwertować szesnastkowy napis na liczba całkowita przy użyciu podstawy 16.

  Informacja

  Aby uzyskać napis szesnastkowej reprezentacj dla zmiennoprzecinkowej, należy użyć metody `float.hex()`.

id(object, /)

  Zwraca „tożsamość” obiektu. Jest to liczba całkowita, która jest gwarantowana jako unikalny i stały dla tego obiektu przez cały okres jego życia. Dwa obiekty o nienakładających się okresach życia mogą mieć tę samą wartość `id()`.

  Jest to adres obiektu w pamięci.

  Rzuci auditing event `builtins.id` bez argumentu `id` .

input()
input(prompt, /)

  Jeśli prompt argument jest obecny, jest on zapisywany na standardowe wyjście bez końcowej nowej linii. Następnie funkcja odczytuje linię z wejścia, konwertuje ją na napis (usuwając końcową nową linię) i zwraca. Po odczytaniu EOF, `EOFError` jest rzucone. Przykład:

      >>> s = input('--> ')
      --> Monty Python's Flying Circus
      >>> s
      "Monty Python's Flying Circus"

  Jeśli załadowano moduł `readline` , to `input()` użyje go do zapewnienia rozbudowanych funkcji edycji wierszy i historii.

  Rzuca auditing event `builtins.input` z argumentem `prompt` przed odczytaniem wpisu

  Rzuca zdarzenie auditing `builtins.input/result` z wynikiem po pomyślnym odczytaniu danych wejściowych.

class int(number=0, /)
class int(string, /, base=10)

  Zwraca obiekt liczba całkowita zbudowana z liczby lub napisu, lub zwraca `0` jeśli nie podano argumentu.

  Przykłady:

      >>> int(123.45)
      123
      >>> int('123')
      123
      >>> int('   -12_345\n')
      -12345
      >>> int('FACE', 16)
      64206
      >>> int('0xface', 0)
      64206
      >>> int('01110011', base=2)
      115

  Jeśli argument definiuje `__int__()`, `int(x)` zwraca `x.__int__()`. Jeśli argument definiuje `__index__()`, to zwraca `x.__index__()`. W przypadku liczb zmiennoprzecinkowych, są one przycinane w kierunku zera.

  Jeśli argument nie jest liczbą lub jeśli podano base, musi to być instancja napisu, `bytes` lub `bytearray` reprezentująca liczba całkowita w radix base. Opcjonalnie, napis może być poprzedzony przez `+` lub `-` (bez spacji pomiędzy nimi), mieć początkowe zera, być otoczone białymi znakami i mieć pojedyncze podkreślenia pomiędzy cyframi.

  Baza-n liczba całkowita napis zawiera cyfry, z których każda reprezentuje wartość od 0 do n-1. Wartości 0–9 mogą być reprezentowane przez dowolną cyfrę dziesiętną Unicode. Wartości 10-35 mogą być reprezentowane przez `a` do `z` (lub `A` do `Z`). Domyślna baza jest 10. Dozwolone wartości bazowe to 0 i 2–36. Podstawy 2, -8 i -16 napis mogą być opcjonalnie poprzedzone przedrostkiem `0b`/`0B`, `0o`/`0O`, lub `0x`/`0X`, tak jak w przypadku literałów liczba całkowita w kodzie. Dla podstawy 0, napis jest interpretowane w podobny sposób jak liczba całkowita w kodzie, w którym rzeczywista podstawa wynosi 2, 8, 10 lub 16, zgodnie z przedrostkiem. Podstawa 0 również nie zezwala na zera wiodące: `int('010', 0)` nie jest legalne, podczas gdy `int('010')` i `int('010', 8)` są.

  Typ liczba całkowita (integer) został opisany w Numeric Types — int, float, complex.

  Zmienione w wersji 3.4: Jeśli base nie jest instancją `int` i obiekt base posiada metodę `base.__index__`, metoda ta jest wywoływana w celu uzyskania liczba całkowitych dla bazy. Poprzednie wersje używały `base.__int__` zamiast `base.__index__`.

  Zmienione w wersji 3.6: Dozwolone jest grupowanie cyfr za pomocą podkreślników, tak jak w literałach kodu.

  Zmienione w wersji 3.7: Pierwszy parametr jest teraz tylko pozycyjny.

  Zmienione w wersji 3.8: Powraca do `__index__()`, jeśli `__int__()` nie jest zdefiniowane.

  Zmienione w wersji 3.11: `int` napis wejścia i reprezentacje napisa mogą być ograniczone, aby pomóc uniknąć ataków typu „odmowa usługi”. `ValueError` jest rzucone, gdy limit zostanie przekroczony podczas konwersji napisa na `int` lub gdy konwersja `int` na napis przekroczy limit. Zobacz dokumentację liczba całkowita napis ograniczenia długości konwersji.

  Zmienione w wersji 3.14: `int()` nie deleguje już do metody `__trunc__()`.

isinstance(object, classinfo, /)

  Zwraca `True` jeśli argument object jest instancją argumentu classinfo, lub jego (bezpośrednią, pośrednią lub wirtualną) podklasą. Jeśli object nie jest obiektem danego typu, funkcja zawsze zwraca `False`. Jeśli classinfo jest krotką obiektów typu (lub rekurencyjnie, innych takich krotek) lub Union Type wielu typów, zwraca `True` jeśli obiekt jest instancją któregokolwiek z typów. Jeśli classinfo nie jest typem lub krotką typów i takich krotek, rzucany jest wyjątek `TypeError`. `TypeError` może nie być rzucony dla nieprawidłowego typu, jeśli wcześniejsze sprawdzenie powiedzie się.

  Zmienione w wersji 3.10: classinfo może być Union Type.

issubclass(cls, classinfo, /)

  Return `True` if cls is a subclass (direct, indirect, or virtual) of classinfo. A class is considered a subclass of itself. classinfo may be a tuple of class objects (or recursively, other such tuples) or a Union Type, in which case return `True` if cls is a subclass of any entry in classinfo. In any other case, a `TypeError` exception is raised.

  Zmienione w wersji 3.10: classinfo może być Union Type.

iter(iterable, /)
iter(callable, sentinel, /)

  Zwraca obiekt iteratora. Pierwszy argument jest interpretowany bardzo różnie w zależności od obecności drugiego argumentu. Bez drugiego argumentu, jedyny argument musi być obiektem kolekcji, która obsługuje protokół iterable (metoda `__iter__()` ), lub musi obsługiwać protokół sekwencji (metoda `__getitem__()` z argumentami liczb całkowitych zaczynających się od `0`). Jeśli nie obsługuje żadnego z tych protokołów, zostanie rzucony `TypeError`. Jeśli podano drugi argument, sentinel, to pierwszy argument musi być obiektem wywoływalnym. Utworzony w tym przypadku iterator będzie wywoływał callable bez argumentu dla każdego wywołania jego metody `__next__()`; jeśli zwrócona wartość jest równa sentinel, zostanie rzucone `StopIteration`, w przeciwnym razie zostanie zwrócona wartość.

  Zobacz także Iterator Types.

  Jednym z przydatnych aplikacji drugiej formy `iter()` jest zbudowanie blok czytnika. Na przykład, odczytywanie stałej szerokości bloku z binarnego pliku bazy danych aż do osiągnięcia końca pliku:

      from functools import partial
      with open('mojedane.db', 'rb') as f:
          for block in iter(partial(f.read, 64), b''):
              process_block(block)

len(object, /)

  Zwraca długość (liczba elementów) obiektu. Obiekt argument może być sekwencją (taką jak napis, bajty, krotka, lista lub zakres) lub kolekcją (taką jak słownik, zbiór lub zbiór zamrożony).

  `len` rzuca `OverflowError` dla długości większych niż `sys.maxsize`, takich jak `range(2 ** 100)`.

class list(iterable=(), /)

  Zamiast być funkcją, `list` jest w rzeczywistości typem mutowalnej (zmiennej) sekwencji, jak udokumentowano w Listy i Sequence Types — list, tuple, range.

locals()

  Zwraca obiekt mapowania reprezentujący bieżącą lokalną tablicę symboli, z nazwami zmiennych jako kluczami i ich aktualnie powiązanymi referencjami jako wartościami.

  W zakresie moduł, a także podczas korzystania z `exec()` lub `eval()` z pojedynczą przestrzenią nazw, ta funkcja zwraca ta sama przestrzeń nazw co `globals()`.

  W zakresie klasy, zwraca przestrzeń nazw, która zostanie przekazana do konstruktora metaklasy.

  W przypadku korzystania z `exec()` lub `eval()` z oddzielnymi lokalnymi i globalnymi argumentami, zwraca lokalną przestrzeń nazw przekazaną do wywołania funkcji.

  We wszystkich powyższych przypadkach każde wywołanie `locals()` w danej ramce wykonania spowoduje zwracanie tego samego obiektu mapowania. Zmiany dokonane za pośrednictwem obiektu mapowania zwróconego z `locals()` będą widoczne jako przypisane, ponownie przypisane lub usunięte zmienne lokalne, a przypisanie, ponowne przypisanie lub usunięcie zmiennych lokalnych natychmiast wpłynie na zawartość zwróconego obiektu mapowania.

  W optimized scope (włączając w to funkcja, generatory i coroutines), każde wywołanie `locals()` zamiast zwracania świeżego słownika zawierający aktualne wiązania zmiennych lokalnych funkcji i wszelkie nielokalne odwołania do komórek. W tym przypadku zmiany powiązań nazw dokonane za pośrednictwem zwróconego dict nie są zapisywane z powrotem do odpowiednich zmiennych lokalnych lub nielokalnych odwołań do komórek, a przypisywanie, ponowne przypisywanie lub usuwanie zmiennych lokalnych i nielokalnych odwołań do komórek nie wpływa na zawartość wcześniej zwróconego słownika.

  Wywołanie `locals()` jako części rozumienia w funkcji, generator lub coroutine jest równoważne wywołaniu go w zakresie zawierającym, z wyjątkiem tego, że zainicjowane zmienne iteracyjne rozumienia zostaną uwzględnione. W innych zakresach zachowuje się tak, jakby rozumienie działało jako zagnieżdżone funkcja.

  Wywołanie `locals()` jako części wyrażenia generator jest równoważne wywołaniu go w zagnieżdżonym generatorze funkcji .

  Zmienione w wersji 3.12: Zachowanie `locals()` w zrozumieniu została zaktualizowana zgodnie z opisem w PEP 709.

  Zmienione w wersji 3.13: Jako część PEP 667, semantyka mutowania obiektów mapowania zwróconych z tej funkcji jest teraz zdefiniowana. Zachowanie w zoptymalizowanych zakresach jest teraz opisane powyżej. Poza zdefiniowaniem, zachowanie w innych zakresach pozostaje niezmienione w stosunku do poprzednich wersji.

map(function, iterable, /, *iterables, strict=False)

  Zwraca iterator, który stosuje funkcję function do każdego elementu iterable, dając wyniki. Jeśli przekazane zostaną dodatkowe argumenty iterables, funkcja musi przyjmować taką liczbę argumentów i jest stosowana do elementów ze wszystkich iterabli równolegle. W przypadku wielu iterables, iterator zatrzymuje się, gdy najkrótszy iterable zostanie wyczerpany. Jeśli strict jest `True` i jeden z iterabli wyczerpie się przed innymi, rzucany jest `ValueError`. Dla przypadków, w których wejścia funkcji są już ułożone w krotki argumentów, zobacz `itertools.starmap()`.

  Zmienione w wersji 3.14: Dodano parametr strict.

max(iterable, /, *, key=None)
max(iterable, /, *, default, key=None)
max(arg1, arg2, /, *args, key=None)

  Zwraca największy element w iterable’u lub największy z dwóch lub więcej argumentów.

  Jeśli podano jeden pozycyjny argument, powinien to być iterable. Zwracany jest największy element w iterable. Jeśli podano dwa lub więcej argumenty pozycyjne, zwracany jest największy z argumentów pozycyjnych.

  Istnieją dwa opcjonalne tylko ze słowem kluczowym argument. Kluczowy argument określa jedno-argumentowy uporządkowanie funkcji jak to używane dla `list.sort()`. Domyślny argument określa obiekt do zwracania, jeśli podany iterable jest pusty. Jeśli iterable jest pusty i domyślny nie jest podany, `ValueError` jest rzucony.

  Jeśli wiele elementów jest maksymalnych, funkcja zwraca pierwszy napotkany element. Jest to zgodne z innymi narzędziami zachowującymi stabilność sortowania, takimi jak `sorted(iterable, key=keyfunc, reverse=True)[0]` i `heapq.nlargest(1, iterable, key=keyfunc)`.

  Zmienione w wersji 3.4: Dodano default tylko słowo kluczowe parametr.

  Zmienione w wersji 3.8: Kluczem może być `None`.

class memoryview(object)

  Zwraca obiekt „memory view” utworzony z podanego argumentu. Więcej informacji można znaleźć na stronie Memory Views.

min(iterable, /, *, key=None)
min(iterable, /, *, default, key=None)
min(arg1, arg2, /, *args, key=None)

  Zwraca najmniejszy element w iterable’u lub najmniejszy z dwóch lub więcej argumentów.

  Jeśli podano jeden pozycjny argument, powinien to być iterable. Zwracany jest najmniejszy element w iterable. Jeśli podano dwa lub więcej argumenty pozycyjne, zwracany jest najmniejszy z argumentów pozycyjnych.

  Istnieją dwa opcjonalne tylko ze słowem kluczowym argument. Kluczowy argument określa jedno-argumentowy uporządkowanie funkcji jak to używane dla `list.sort()`. Domyślny argument określa obiekt do zwracania, jeśli podany iterable jest pusty. Jeśli iterable jest pusty i domyślny nie jest podany, `ValueError` jest rzucony.

  Jeśli wiele elementów jest minimalnych, funkcja zwraca pierwszy napotkany. Jest to zgodne z innymi narzędziami zachowującymi stabilność sortowania, takimi jak `sorted(iterable, key=keyfunc)[0]` i `heapq.nsmallest(1, iterable, key=keyfunc)`.

  Zmienione w wersji 3.4: Dodano default tylko słowo kluczowe parametr.

  Zmienione w wersji 3.8: Kluczem może być `None`.

next(iterator, /)
next(iterator, default, /)

  Pobiera następny element z iterator poprzez wywołanie jego metody `__next__()`. Jeśli domyślny jest podany, jest zwracany, jeśli iterator jest wyczerpany, w przeciwnym razie `StopIteration` jest rzucony.

class object

  Jest to ostateczna klasa bazowa wszystkich innych klas. Posiada metody, które są wspólne dla wszystkich instancji klas Pythona. Kiedy konstruktor jest wywoływany, zwraca nowy obiekt bez funkcji. Konstruktor nie akceptuje żadnych argumentów.

  Informacja

  `object` instancje nie mają `__dict__` atrybut , więc nie można przypisać dowolnego atrybuta do instancji `object`.

oct(integer, /)

  Konwertuje liczbę całkowitą na ósemkowy ciąg znaków z prefiksem „0o”. Wynik jest poprawnym wyrażeniem Pythona. Jeśli integer nie jest pythonowym obiektem `int`, musi definiować metodę `__index__()`, która zwraca liczbę całkowitą. Na przykład:

      >>> oct(8)
      '0o10'
      >>> oct(-56)
      '-0o70'

  Jeśli chcesz przekonwertować liczbę całkowita na ósemkowy napis z przedrostkiem „0o” lub bez, możesz użyć jednego z poniższych sposobów.

      >>> '%#o' % 10, '%o' % 10
      ('0o12', '12')
      >>> format(10, '#o'), format(10, 'o')
      ('0o12', '12')
      >>> f'{10:#o}', f'{10:o}'
      ('0o12', '12')

  Zobacz też `format()` by uzyskać więcej informacji.

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

  Otwiera file i zwraca odpowiedni obiekt pliku. Jeśli pliku nie da się otworzyć, rzucany jest `OSError`. Więcej przykładów użycia tej funkcji można znaleźć w Odczytywanie i zapisywanie plików.

  file jest obiektem path-like podającym nazwę ścieżki (bezwzględną lub względną do bieżącego katalogu roboczego) pliku, który ma zostać otwarty, lub liczbą całkowitą deskryptora pliku, który ma zostać opakowany. (Jeśli podano deskryptor pliku, jest on zamykany, gdy zwrócony obiekt I/O jest zamykany, chyba że closefd jest ustawione na `False`.)

  mode to opcjonalny napis , który określa tryb, w którym plik jest otwierany. Domyślnie jest to `'r'`, co oznacza otwarcie do odczytu w trybie tekstowym. Inne popularne wartości to `'w'` dla zapisu (obcinanie pliku, jeśli już istnieje), `'x'` dla wyłącznego tworzenia i `'a'` dla dołączania (co w niektórych systemach Unix oznacza, że wszystkie zapisy są dołączane do końca pliku niezależnie od bieżącej pozycji wyszukiwania). W trybie tekstowym, jeśli nie podano encoding, używane kodowanie jest zależne od platformy: `locale.getencoding()` jest wywoływane w celu uzyskania bieżącego kodowania locale. (Do odczytu i zapisu nieprzetworzonych bajtów należy użyć trybu binarnego i pozostawić encoding nieokreślone). Dostępne tryby to:

  Znak | Znaczenie
  --- | ---
  `'r'` | otwarte do czytania (domyślny)
  `'w'` | otworzyć do zapisu, najpierw obcinając plik
  `'x'` | otwarcie do wyłącznego utworzenia, niepowodzenie, jeśli plik już istnieje
  `'a'` | otwarte do zapisu, dołączenie do końca pliku, jeśli istnieje
  `'b'` | tryb binarny
  `'t'` | tryb tekstowy (domyślny)
  `'+'` | otwarte na aktualizację (odczyt i zapis)

  Tryb domyślny to `'r'` (otwarty do odczytu tekstu, synonim `'rt'`). Tryby `'w+'` i `'w+b'` otwierają i obcinają plik. Tryby `'r+'` i `'r+b'` otwierają plik bez obcinania.

  Jak wspomniano w Skorowidz, Python rozróżnia binarne i tekstowe I/O. Pliki otwierane w trybie binarnym (w tym `'b'` w mode argument) zwracają zawartość jako obiekty `bytes` bez żadnego dekodowania. W trybie tekstowym ( domyślny, lub gdy `'t'` jest zawarte w mode argument), zawartość pliku jest zwracana jako `str`, bajty zostały najpierw zdekodowane przy użyciu kodowania zależnego od platformy lub przy użyciu określonego kodowania, jeśli zostało podane.

  Informacja

  Python nie zależy od pojęcia plików tekstowych w systemie operacyjnym; całe przetwarzanie jest wykonywane przez Pythoan i dlatego jest niezależne od platformy.

  buffering to opcjonalna liczba całkowita używana do ustawiania polityki buforowania. Przekaż 0, aby wyłączyć buforowanie (dozwolone tylko w trybie binarnym), 1, aby wybrać buforowanie liniowe (używane tylko podczas pisania w trybie tekstowym) i liczba całkowita > 1, aby wskazać rozmiar w bajtach bufora o stałym rozmiarze. Należy zauważyć, że określenie rozmiaru bufora w ten sposób dotyczy binarnie buforowanego wejścia/wyjścia, ale `TextIOWrapper` (tj. pliki otwierane za pomocą `mode='r+'`) będą miały inne buforowanie. Aby wyłączyć buforowanie w `TextIOWrapper`, należy rozważyć użycie flagi `write_through` dla `io.TextIOWrapper.reconfigure()`. Gdy nie podano buforowania argument, polityka buforowania domyślny działa w następujący sposób:

  - Pliki binarne są buforowane w kawałkach o stałym rozmiarze; rozmiar bufora to `max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE)`, gdy dostępny jest rozmiar bloku urządzenia. W większości systemów rozmiar bufora wynosi zazwyczaj 128 kilobajtów.

  - „Interaktywne” pliki tekstowe (pliki, dla których `isatty()` zwraca `True` ) używają buforowania linii. Inne pliki tekstowe używają zasad opisanych powyżej dla plików binarnych.

  encoding to nazwa kodowania używanego do dekodowania lub kodowania pliku. Powinno być używane tylko w trybie tekstowym. Kodowanie domyślne jest zależne od platformy (cokolwiek `locale.getencoding()` zwraca ), ale można użyć dowolnego kodowanie tekstu obsługiwanego przez Python. Lista obsługiwanych kodowań znajduje się na stronie `codecs` modułu .

  errors is an optional string that specifies how encoding and decoding errors are to be handled—this cannot be used in binary mode. A variety of standard error handlers are available, though any error handling name that has been registered with `codecs.register_error()` is also valid. The standard names can be found in Error Handlers.

  newline określa sposób analizowania nowej linii znak ze strumienia. Może to być `None`, `''`, `'\n'`, `'\r'` i `'\r\n'`. Działa to w następujący sposób:

  - Podczas odczytu danych wejściowych ze strumienia, jeśli newline to `None`, włączony jest uniwersalny tryb nowych linii. Linie na wejściu mogą kończyć się na `'\n'`, `'\r'`, lub `'\r\n'`, które są tłumaczone na `'\n'` przed zwróceniem do wywołującego. Jeśli jest to `''`, włączony jest uniwersalny tryb nowych linii, ale zakończenia linii są zwracane do wywołującego bez tłumaczenia. Jeśli ma dowolną z pozostałych legalnych wartości, linie wejściowe są kończone tylko przez podany napis, a zakończenie linii jest zwracane bez tłumaczenia.

  - Podczas zapisywania danych wyjściowych do strumienia, jeśli newline ma wartość `None`, wszelkie zapisane `'\n'` znaki są tłumaczone na systemowy domyślny separator linii, `os.linesep`. Jeśli newline ma wartość `''` lub `'\n'`, tłumaczenie nie jest wykonywane. Jeśli newline jest dowolną z pozostałych legalnych wartości, wszelkie zapisane `'\n'` znaki są tłumaczone na podany napis.

  Jeśli closefd ma wartość `False` i podano deskryptor pliku, a nie nazwę pliku, to bazowy deskryptor pliku pozostanie otwarty po zamknięciu pliku. Jeśli podano nazwę pliku, closefd musi mieć wartość `True` ( domyślny); w przeciwnym razie wystąpi błąd.

  Niestandardowy otwieracz może być użyty poprzez przekazanie wywołania jako opener. Podstawowy deskryptor pliku dla obiektu pliku jest następnie uzyskiwany przez wywołanie opener z (file, flags). opener musi zwracać otwarty deskryptor pliku (przekazanie `os.open` jako opener skutkuje funkcjonalnością podobną do przekazania `None`).

  Nowo utworzony plik jest non-inheritable.

  Poniższy przykład używa dir_fd parametr z `os.open()` funkcji do otwarcia pliku względem danego katalogu:

      >>> import os
      >>> dir_fd = os.open('somedir', os.O_RDONLY)
      >>> def opener(path, flags):
      ...     return os.open(path, flags, dir_fd=dir_fd)
      ...
      >>> with open('spamspam.txt', 'w', opener=opener) as f:
      ...     print('To zostanie zapisane  w somedir/spamspam.txt', file=f)
      ...
      >>> os.close(dir_fd)  # nie ujawniaj deskryptora pliku

  Typ file object zwracany przez `open()` zależy od trybu. Gdy `open()` jest używany do otwarcia pliku w trybie tekstowym (`'w'`, `'r'`, `'wt'`, `'rt'`, itd.), to zwracana jest podklasa klasy `io.TextIOBase` (w szczególności `io.TextIOWrapper`). W przypadku użycia do otwarcia pliku w trybie binarnym z buforowaniem, zwracana klasą jest podklasa z `io.BufferedIOBase`. Dokładna klasa różni się: w trybie odczytu binarnego, jest to zwracane z `io.BufferedReader`; w trybach zapisu binarnego i dołączania binarnego, jest to zwracane z `io.BufferedWriter`, a w trybie odczytu/zapisu, jest to zwracane z `io.BufferedRandom`. Gdy buforowanie jest wyłączone, zwracany jest nieprzetworzony strumień, podklasa z `io.RawIOBase`, `io.FileIO`.

  Zobacz także moduły obsługę plików, takich jak `fileinput`, `io` (gdzie zadeklarowano `open()` ), `os`, `os.path`, `tempfile` i `shutil`.

  Rzuca auditing event `open` z argumentami `path` , `mode`, `flags`.

  Adresy `mode` i `flags` argumenty mogły zostać zmodyfikowane lub wywnioskowane z oryginalnego połączenia.

  Zmienione w wersji 3.3:

  - Dodano opener parametr.

  - Dodano tryb `'x'`.

  - `IOError` kiedyś był rzucony, teraz jest alias z `OSError`.

  - `FileExistsError` jest teraz rzucane, jeśli plik otwarty w trybie wyłącznego tworzenia (`'x'`) już istnieje.

  Zmienione w wersji 3.4:

  - Plik nie jest teraz dziedziczony.

  Zmienione w wersji 3.5:

  - Jeśli wywołanie systemowe zostanie przerwane, a program obsługi sygnału nie rzuci wyjątku, funkcji ponawia teraz wywołanie systemowe zamiast rzucenja wyjątku `InterruptedError` (zobacz PEP 475 dla uzasadnienia).

  - Dodano obsługę błędów `'namereplace'`.

  Zmienione w wersji 3.6:

  - Dodano obsługę akceptowania obiektów implementujących `os.PathLike`.

  - W systemie Windows, otwarcie bufora konsoli może zwracać podklasa z `io.RawIOBase` innego niż `io.FileIO`.

  Zmienione w wersji 3.11: Tryb `'U'` został usunięty.

ord(character, /)

  Zwraca wartość porządkową znaku.

  Jeśli argument jest jedno-znakowym ciągiem znaków, zwraca punkt kodowy Unicode tego znaku. Na przykład, `ord('a')` zwraca liczbę całkowitą `97` i `ord('€')` (znak euro) zwraca `8364` . Jest to odwrotność `chr()`.

  Jeśli argument jest obiektem `bytes` lub `bytearray` o długości 1, zwraca wartość pojedynczego bajtu. Na przykład `ord(b'a')` zwraca liczbę całkowitą `97`.

pow(base, exp, mod=None)

  Zwraca base do potęgi exp; jeśli mod jest obecny, zwraca base do potęgi exp, modulo mod (obliczane bardziej efektywnie niż `pow(base, exp) % mod`). Forma dwóch argumentów `pow(base, exp)` jest równoważna użyciu operatora potęgi: `base**exp`.

  Gdy argumenty są wbudowanymi typami numerycznymi z mieszanymi typami operandów, obowiązują zasady koercji dla binarnych operatorów arytmetycznych. Dla operandów `int` wynik ma ten sam typ co operandy (po koercji), chyba że drugi argument jest ujemny; w takim przypadku wszystkie argument są konwertowane na float i dostarczany jest wynik float. Na przykład, `pow(10, 2)` zwracać `100` , ale `pow(10, -2)` zwracać `0.01` . W przypadku ujemnej podstawy typu `int` lub `float` i wykładnika niecałkowitego wynikiem jest liczba zespolona. Na przykład, `pow(-9, 0.5)` zwraca wartość zbliżoną do `3j`. Natomiast dla ujemnej podstawy typu `int` lub `float` z wykładnikiem całkowitym, dostarczany jest wynik zmiennoprzecinkowy. Na przykład `pow(-9, 2.0)` zwraca `81.0` .

  Dla operandów `int` base i exp, jeśli mod jest obecny, mod musi być również typu liczba całkowita i mod musi być niezerowy. Jeśli mod jest obecny, a exp jest ujemny, base musi być względnie pierwsze do mod. W takim przypadku zwracana jest wartość `pow(inv_base, -exp, mod)`, gdzie inv_base jest odwrotnością base modulo mod.

  Oto przykład obliczania odwrotności dla `38` modulo `97`:

      >>> pow(38, -1, mod=97)
      23
      >>> 23 * 38 % 97 == 1
      True

  Zmienione w wersji 3.8: W przypadku operandów `int`, trzy-argumentowa forma `pow` pozwala teraz, aby drugi argument był ujemny, umożliwiając obliczanie odwrotności modularnych.

  Zmienione w wersji 3.8: Zezwalane na argumenty nazwane. Wcześniej obsługiwane były tylko argumenty pozycyjne.

print(*objects, sep=' ', end='\n', file=None, flush=False)

  Wypisuje obiekty do strumienia tekstowego file, oddzielone sep i zakończone end. sep, end, file i flush, jeśli występują, muszą być podane jako argument nazwany.

  Wszystkie non-argumenty nazwane są konwertowane na napis tak jak `str()` i zapisywane do strumienia, oddzielone sep i end. Zarówno sep jak i end muszą być napisem; mogą być również `None`, co oznacza użycie wartości domyślne. Jeśli nie podano objects, `print()` po prostu zapisze end.

  Plik argument musi być obiektem z metodą `write(string)`; jeśli nie jest obecny lub `None`, zostanie użyty `sys.stdout`. Ponieważ drukowane argument są konwertowane na tekst napis, `print()` nie może być używany z obiektami plików w trybie binarnym. Zamiast tego należy uży `file.write(...)`.

  Buforowanie wyjścia jest zwykle określane przez file. Jednakże, jeśli flush jest prawdą, strumień jest przymusowo opróżniany.

  Zmienione w wersji 3.3: Dodano flush argument nazwany.

class property(fget=None, fset=None, fdel=None, doc=None)

  Zwraca atrybut właściwośći.

  fget to funkcja do pobierania wartości atrybut. fset to funkcja do ustawiania wartości atrybut. fdel to funkcja do usuwania wartości atrybut. Z kolei doc tworzy docstring dla atrybut.

  Typowym zastosowaniem jest zdefiniowanie zarządzanego atrybutu `x`

      class C:
          def __init__(self):
              self._x = None

          def getx(self):
              return self._x

          def setx(self, value):
              self._x = value

          def delx(self):
              del self._x

          x = property(getx, setx, delx, "I'm the 'x' property.")

  Jeśli c jest instancją C, `c.x` wywoła getter, `c.x = value` wywoła setter, a `del c.x` deleter.

  Jeśli zostanie podana, doc będzie docstringiem właściwości atrybut. W przeciwnym razie właściwość skopiuje docstring fget (jeśli istnieje). Umożliwia to łatwe tworzenie właściwości tylko do odczytu przy użyciu `property()` jako dekorator:

      class Parrot:
          def __init__(self):
              self._voltage = 100000

          @property
          def voltage(self):
              """Uzyska aktualne napięcie.""
              return self._voltage

  `@property` dekorator zamienia metodę `voltage()` w „getter” dla tylko do odczytu atrybut o tej samej nazwie i ustawia docstring dla voltage na „Get the current voltage”.

  @getter
  @setter
  @deleter

    Obiekt właściwości ma metody `getter`, `setter` i `deleter` używane jako dekorator, które tworzą kopię właściwości z odpowiednim akcesorem funkcji ustawionym na dekorowany funkcja. Najlepiej wyjaśnić to na przykładzie:

        class C:
            def __init__(self):
                self._x = None

            @property
            def x(self):
                """I'm the 'x' property."""
                return self._x

            @x.setter
            def x(self, value):
                self._x = value

            @x.deleter
            def x(self):
                del self._x

    Ten kod jest dokładnie taki sam jak w pierwszym przykładzie. Pamiętaj, aby nadać dodatkowym funkcjom takie same nazwy jak oryginalnej właściwości (w tym przypadku `x`).

    Zwrócony obiekt właściwości ma również atrybutow `fget` , `fset` i `fdel` odpowiadające konstruktor argumentu.

  Zmienione w wersji 3.5: Dokumentacja obiektów właściwości sa teraz zapisywalne.

  __name__

    Atrybut przechowująca nazwę właściwości. Nazwa właściwości może zostać zmieniona w czasie wykonywania.

    Dodane w wersji 3.13.

class range(stop, /)
class range(start, stop, step=1, /)

  Zamiast być funkcja, `range` jest w rzeczywistości niezmiennym typem sekwencji, jak udokumentowano w Ranges i Sequence Types — list, tuple, range.

repr(object, /)

  Zwraca napis zawierający nadającą się do druku reprezentację obiektu. W przypadku wielu typów, ta funkcja podejmuje próbę zwracanja napisu, która dałaby obiekt o tej samej wartości po przekazaniu do `eval()`; w przeciwnym razie reprezentacja jest napisem ujęta w nawiasy kątowe, które zawierają nazwę typu obiektu wraz z dodatkowymi informacjami, często zawierającymi nazwę i adres obiektu. Klasa może kontrolować co funkcja zwraca dla swoich instancji, definiując metodę `__repr__()`. Jeśli `sys.displayhook()` nie jest dostępna, ta funkcja będzie rzucona `RuntimeError` .

  Ta klasa ma niestandardową reprezentację, którą można ocenić:

      class Person:
         def __init__(self, name, age):
            self.name = name
            self.age = age

         def __repr__(self):
            return f"Person({self.name!r}, {self.age!r})"

reversed(object, /)

  Zwraca odwrócony iterator. Argument musi być obiektem, który ma metodę `__reversed__()` lub obsługuje protokół sekwencji (metoda `__len__()` i metoda `__getitem__()` z całkowitymi argumentami począwszy od `0`).

round(number, ndigits=None)

  Zwraca liczba zaokrąglona do cyfr po przecinku dziesiętnym. Jeśli ndigits zostanie pominięte lub będzie `None`, to zwraca najbliższa liczbe całkowita wartości wejściowej.

  Dla typów wbudowanych wspierających `round()`, wartości są zaokrąglane do najbliższej wielokrotności 10 do potęgi minus ndigits; jeśli dwie wielokrotności są równie bliskie, zaokrąglanie jest wykonywane w kierunku parzystego wyboru (więc, na przykład, zarówno `round(0.5)` jak i `round(-0.5)` są `0`, a `round(1.5)` jest `2`). Każda wartość liczby całkowitej jest ważna dla cyfr (dodatnich, zerowych lub ujemnych). zwracana wartość jest liczba całkowita jeśli ndigits jest pominięte lub `None`. W przeciwnym razie zwracana wartość ma ten sam typ co number.

  Dla ogólnego obiektu Python `number` , `round` deleguje do `number.__round__`.

  Informacja

  Zachowanie `round()` dla zmiennoprzecinkowych może być zaskakujący: na przykład, `round(2.675, 2)` daje `2.67` zamiast oczekiwanego `2.68`. Nie jest to błąd: wynika to z faktu, że większość ułamków dziesiętnych nie może być reprezentowana dokładnie jako liczba zmiennoprzecinkowa. Więcej informacji można znaleźć na stronie Arytmetyka liczb zmiennoprzecinkowych: problemy i ograniczenia.

class set(iterable=(), /)

  Zwraca nowy obiekt `set`, opcjonalnie z elementami pobranymi z iterable. `set` jest klasą wbudowana. Dokumentacja dotycząca tej klasy znajduje się na stronach `set` i Set Types — set, frozenset.

  Dla innych kontenerów zobacz klasy wbudowane `frozenset` , `list`, `tuple` i `dict`, jak również `collections` moduł .

setattr(object, name, value, /)

  Jest to odpowiednik `getattr()`. Argumenty to obiekt, napis i dowolna wartość. Napis może nazywać istniejący atrybut lub nowy atrybut. Funkcja przypisuje wartość do atrybut, pod warunkiem, że obiekt na to pozwala. Na przykład, `setattr(x, 'foobar', 123)` jest równoważne `x.foobar = 123`.

  name nie musi być identyfikatorem Pythona zdefiniowanym w Names (identifiers and keywords), chyba że obiekt zdecyduje się to wymusić, na przykład w niestandardowym `__getattribute__()` lub poprzez `__slots__`. Obiekt atrybut, którego nazwa nie jest identyfikatorem, nie będzie dostępny przy użyciu notacji kropkowej, ale będzie dostępny za pośrednictwem `getattr()` itd.

  Informacja

  Ponieważ mangling nazwy prywatnej ma miejsce w czasie kompilacji, należy ręcznie zmienić nazwę prywatnego atrybutu (atrybut z dwoma wiodącymi podkreśleniami), aby ustawić ją z `setattr()`.

class sentinel(name, /, *, repr=None)

  Return a new unique sentinel object. name must be a `str`, and is used by default as the returned object’s representation:

      >>> MISSING = sentinel("MISSING")
      >>> MISSING
      MISSING

  The optional repr argument can be used to specify a different representation:

      >>> MISSING = sentinel("MISSING", repr="<MISSING>")
      >>> MISSING
      <MISSING>

  Sentinel objects are truthy and compare equal only to themselves. They are intended to be compared with the `is` operator.

  `sentinel` does not support subclassing.

  Shallow and deep copies of a sentinel object return the object itself.

  Sentinels are conventionally assigned to a variable with a matching name. Sentinels defined in this way can be used in type hints:

      MISSING = sentinel("MISSING")

      def next_value(default: int | MISSING = MISSING):
          ...

  Sentinel objects support the | operator for use in type expressions.

  `Pickling` is supported for sentinel objects that are placed in the global scope of a module under a name matching the sentinel’s name, and for sentinels placed in class scopes with a name matching the qualified name of the sentinel. Other sentinels, such as those defined in a function scope, are not picklable. The identity of the sentinel is preserved after pickling:

      import pickle

      PICKLABLE = sentinel("PICKLABLE")

      assert pickle.loads(pickle.dumps(PICKLABLE)) is PICKLABLE

      class Cls:
          PICKLABLE = sentinel("Cls.PICKLABLE")

      assert pickle.loads(pickle.dumps(Cls.PICKLABLE)) is Cls.PICKLABLE

  Sentinel objects have the following attributes:

  __name__

    The sentinel’s name.

  __module__

    The name of the module where the sentinel was created. This attribute is writable.

  Dodane w wersji 3.15.

class slice(stop, /)
class slice(start, stop, step=None, /)

  Zwraca obiekt slice reprezentujący zbiór indeksów określonych przez `range(start, stop, step)`. start i step argumenty domyślne do `None`.

  Obiekty slice są również generowane, gdy używana jest składnia slicingu. Na przykład: `a[start:stop:step]` lub `a[start:stop, i]`.

  Zobacz `itertools.islice()` dla alternatywnej wersji, która zwraca iterator.

  start
  stop
  step

    Te atrybuty tylko-do-odczytu są ustawione na wartości argumentów (lub ich wartości domyślne). Nie mają one żadnej innej wyraźnej funkcjonalności; są jednak używane przez NumPy i inne zewnętrzne pakiety.

  Zmienione w wersji 3.12: Obiekty Slice są teraz hashable (pod warunkiem, że `start`, `stop` i `step` są hashable).

sorted(iterable, /, *, key=None, reverse=False)

  Zwraca nową posortowaną listę z elementów w iterable.

  Posiada dwa opcjonalne argumenty, które muszą być określone jako argument nazwany.

  key określa funkcje jednego argumentu, który jest używany do wyodrębnienia klucza porównania z każdego elementu w iterable (na przykład `key=str.lower`). Wartość domyślna to `None` (bezpośrednie porównanie elementów).

  reverse jest wartością logiczną. Jeśli jest ustawiona na `True`, elementy listy są sortowane tak, jakby każde porównanie było odwrócone.

  Użyj `functools.cmp_to_key()` do konwersji starego stylu cmp funkcja na key funkcja.

  Wbudowana `sorted()` funkcja ma gwarancję stabilności. Sortowanie jest stabilne, jeśli gwarantuje, że nie zmieni względnej kolejności elementów, które porównują równe — jest to pomocne przy sortowaniu w wielu przejściach (na przykład sortowanie według działu, a następnie według kategorii wynagrodzenia).

  Algorytm sortowania używa tylko porównań `<` między elementami. Podczas gdy zdefiniowanie metoda `__lt__()` wystarczy do sortowania, PEP 8 zaleca zaimplementowanie wszystkich sześciu bogatych porównań. Pomoże to uniknąć błędów podczas korzystania z tych samych danych z innymi narzędziami porządkującymi, takimi jak `max()`, które opierają się na innej metodzie bazowej. Zaimplementowanie wszystkich sześciu porównań pomaga również uniknąć nieporozumień w przypadku porównań typów mieszanych, które mogą wywoływać metodę `__gt__()`.

  Przykłady sortowania i krótki samouczek sortowania można znaleźć na stronie Sorting Techniques.

@staticmethod

  Przekształcenie metody w metodę statyczną.

  Metoda statyczna nie otrzymuje niejawnego pierwszego argumentu. Aby zadeklarować metodę statyczną, użyj tego idiomu:

      class C:
          @staticmethod
          def f(arg1, arg2, argN): ...

  Forma `@staticmethod` to dekorator funkcji – zobacz Function definitions po szczegóły.

  Metoda statyczna może być wywołana na klasie (np. `C.f()`) lub na instancji (np. `C().f()`). Co więcej, metoda statyczna descriptor jest również wywoływalna, więc może być użyta w definicja klasy (np. `f()`).

  Metody statyczne w Python są podobne do tych, które można znaleźć w Java lub C++. Zobacz także `classmethod()`, aby zapoznać się z wariantem, który jest przydatny do tworzenia alternatywnych konstruktorów klas.

  Podobnie jak wszystkie dekoratory, możliwe jest również wywołanie `staticmethod` jako zwykłoł funkcje i zrobienie czegoś z jego wynikiem. Jest to potrzebne w niektórych przypadkach, gdy potrzebujesz odniesienia do funkcji z ciałej klasy i chcesz uniknąć automatycznej transformacji do metody instancji. W takich przypadkach należy użyć tego idiomu:

      def standardowa_funkcja():
          ...

      class C:
          methoda = staticmethod(standardowa_funkcja)

  Więcej informacji na temat metod statycznych można znaleźć na stronie The standard type hierarchy.

  Zmienione w wersji 3.10: Metody statyczne dziedziczą teraz metodę atrybut (`__module__`, `__name__`, `__qualname__`, `__doc__` i `__annotations__`), mają nową `__wrapped__` atrybut i są teraz wywoływane jako zwykła funkcja.

class str(*, encoding='utf-8', errors='strict')
class str(object)
class str(object, encoding, errors='strict')
class str(object, *, errors)

  Zwraca `str` wersja of object. Szczegółowe informacje można znaleźć na stronie `str()`.

  `str` jest wbudowanem napisem class. Aby uzyskać ogólne informacje na temat napisow, zobacz Text Sequence Type — str.

sum(iterable, /, start=0)

  Sumuje start i elementy iterable od lewej do prawej i zwraca sumę. Elementy iterable są zwykle liczbami, a wartością początkową nie może być napisem.

  W niektórych przypadkach istnieją dobra alternatywa dla `sum()`. Preferowanym, szybkim sposobem na łączyć sekwencji napisów jest wywołanie `''.join(sequence)`. Aby dodać wartości zmiennoprzecinkowe z rozszerzoną precyzją, zobacz `math.fsum()`. Aby łączyć serię iterable, należy rozważyć użycie `itertools.chain()`.

  Zmienione w wersji 3.8: Parametr start można określić jako argument nazwany.

  Zmienione w wersji 3.12: Sumowanie zmiennoprzecinkowe zostało przełączone na algorytm, który zapewnia większą dokładność i lepszą przemienność w większości kompilacji.

  Zmienione w wersji 3.14: Dodano specjalizację dla sumowania liczb zespolonych, używając tego samego algorytmu co dla sumowania liczb zmiennoprzecinkowych.

class super
class super(type, object_or_type=None, /)

  Zwraca obiekt proxy, który deleguje wywołania metod do klasy nadrzędnej lub rodzeństwa type. Jest to przydatne do uzyskiwania dostępu do odziedziczonych metod, które zostały przesłonięte w klasie.

  object_or_type określa method resolution order do przeszukania. Wyszukiwanie rozpoczyna się od klasy zaraz po type.

  Na przykład, jeśli `__mro__` z object_or_type jest `D -> B -> C -> A -> object` i wartość type jest `B`, to `super()` wyszukuje `C -> A -> object`.

  `__mro__` atrybut klasy odpowiadającej object_or_type wymienia kolejność wyszukiwania metod używaną zarówno przez `getattr()` jak i `super()`. Adres atrybut jest dynamiczny i może ulec zmianie przy każdej aktualizacji hierarchii dziedziczenia.

  Jeśli drugi argument zostanie pominięty, zwrócony superobiekt jest niezwiązany. Jeśli drugi argument jest obiektem, `isinstance(obj, type)` musi być prawda. Jeśli drugi argument jest typem, `issubclass(type2, type)` musi być prawda (jest to przydatne dla metod klasowych).

  W przypadku wywołania bezpośrednio w zwykłej metodzie klasy, obie argument mogą zostać pominięte („zero-argument `super()` „). W takim przypadku type będzie klasą otaczającą, a obj będzie pierwszym argumentem bezpośrednio otaczającego funkcje (zazwyczaj `self`). (Oznacza to, że zero-argument `super()` nie będzie działać zgodnie z oczekiwaniami wewnątrz zagnieżdżonych funkci, w tym wyrażeń generator, które domyślnie tworzą zagnieżdżone funkcje).

  Istnieją dwa typowe przypadki użycia super. W hierarchii klas z pojedynczym dziedziczeniem, super może być używany do odwoływania się do klas nadrzędnych bez ich jawnego nazywania, dzięki czemu kod jest łatwiejszy w utrzymaniu. To zastosowanie jest bardzo podobne do użycia super w innych językach programowania.

  Drugim przypadkiem użycia jest obsługa kooperatywnego dziedziczenia wielokrotnego w dynamicznym środowisku wykonawczym. Ten przypadek użycia jest unikalny dla Python i nie występuje w statycznie kompilowanych językach lub językach, które obsługują tylko pojedyncze dziedziczenie. Umożliwia to implementację „diagramów diamentowych”, w których wiele klas bazowych implementuje tę samą metodę. Dobry projekt nakazuje, aby takie implementacje miały tę samą sygnaturę wywołania w każdym przypadku (ponieważ kolejność wywołań jest określana w czasie wykonywania, ponieważ kolejność ta dostosowuje się do zmian w hierarchii klas i ponieważ kolejność ta może obejmować klasy rodzeństwa, które są nieznane przed uruchomieniem).

  W obu przypadkach typowe wywołanie superklasy wygląda następująco:

      class C(B):
          def methoda(self, arg):
              super().methoda(arg) # To robi to samo co:
                                     # super(C, self).methoda(arg)

  Oprócz wyszukiwania metod, `super()` działa również dla wyszukiwania atrybut. Jednym z możliwych przypadków użycia jest wywołanie descriptors w klasie nadrzędnej lub podrzędnej.

  Należy zauważyć, że `super()` jest zaimplementowany jako część wiązania przetwarzanie/proces dla jawnego wyszukiwania kropkowego atrybut, takiego jak `super().__getitem__(name)`. Czyni to poprzez implementację własnej metody `__getattribute__()` do wyszukiwania klas w przewidywalnej kolejności, która obsługuje wielokrotne dziedziczenie oparte na współpracy. Odpowiednio, `super()` jest niezdefiniowany dla niejawnych wyszukiwań przy użyciu instrukcja lub operatorów takich jak `super()[name]`.

  Należy również pamiętać, że poza formą zero argument, `super()` nie jest ograniczona do użycia wewnątrz metod. Dwie formy argumentów dokładnie określają argumenty i tworzą odpowiednie odniesienia. Forma zero argumentów działa tylko wewnątrz definicja klasy, ponieważ kompilator wypełnia niezbędne szczegóły, aby poprawnie pobrać definiowaną klasę, a także uzyskać dostęp do bieżącej instancji dla zwykłych metod.

  Praktyczne sugestie dotyczące projektowania klas współpracujących przy użyciu `super()` można znaleźć w poradniku korzystania z super().

  Zmienione w wersji 3.14: Obiekty `super` współpracują teraz z modułami `pickle` i `copy`.

class tuple(iterable=(), /)

  Zamiast być funkcja, `tuple` jest w rzeczywistości niezmiennym typem sekwencji, jak udokumentowano w Tuples i Sequence Types — list, tuple, range.

class type(object, /)
class type(name, bases, dict, /, **kwargs)

  Z jednym argumentem, zwraca typ obiektu. Typ zwracanej wartość jest obiektem typu i generalnie jest to ten sam obiekt, który został zwrócony przez `object.__class__`.

  Funckja wbudowana `isinstance()` jest zalecana do testowania typu obiektu, ponieważ uwzględnia podklasa.

  Z trzema argumentamy, zwracać nowy typ obiektu. Jest to zasadniczo dynamiczna forma `class` instrukcja . name napis jest nazwą klasy i staje się `__name__` atrybut . bases krotka zawiera klasy bazowe i staje się `__bases__` atrybut ; jeśli jest pusta, dodawana jest `object`, ostateczna baza wszystkich klas. The dict słownik zawiera atrybut i definicje metod dla ciało klasy; może być kopiowany lub zawijany zanim stanie się `__dict__` atrybut . Następujące dwa instrukcja tworzą identyczne `type` obiekty:

      >>> class X:
      ...     a = 1
      ...
      >>> X = type('X', (), dict(a=1))

  Zobacz także:

  - Dokumentacja atrybutow i metod na klasach.

  - Type Objects

  Argument nazwane dostarczone do trzech formularzy argumenty są przekazywane do odpowiedniego mechanizmu metaklas (zwykle `__init_subclass__()`) w taki sam sposób, jak słowa kluczowe w definicja klasy (poza metaclass).

  Zobacz także Customizing class creation.

  Zmienione w wersji 3.6: Podklasy z `type`, które nie nadpisują `type.__new__` nie mogą już używać formy jednego-argumentu do uzyskania typu obiektu.

  Zmienione w wersji 3.15: dict can now be a `frozendict`.

vars()
vars(object, /)

  Zwraca atrybut `__dict__` dla moduł, klas, instancji lub dowolnego innego obiektu z `__dict__` atrybut .

  Obiekty takie jak moduł i instancje mają możliwość aktualizacji `__dict__` atrybut; jednak inne obiekty mogą mieć ograniczenia zapisu na ich `__dict__` atrybut (na przykład klasy używają `types.MappingProxyType`, aby zapobiec bezpośrednim aktualizacjom słownika).

  Bez argumenta, `vars()` działa jak `locals()`.

  Wyjątek `TypeError` jest rzucony, jeśli obiekt jest określony, ale nie ma `__dict__` atrybut (na przykład, jeśli jego klasa definiuje `__slots__` atrybut ).

  Zmienione w wersji 3.13: Wynik wywołania tej funkcji bez argumentów został zaktualizowany zgodnie z opisem dla wbudowanej funkcji `locals()`.

zip(*iterables, strict=False)

  Iteruje równolegle po kilku iterables, tworząc krotke z elementem z każdej z nich.

  Przykład:

      >>> for item in zip([1, 2, 3], ['cukier', 'przyprawa', 'wszystko fajnie']):
      ... print(item)
      ...
      (1, 'cukier')
      (2, "przyprawa")
      (3, "wszystko fajnie")

  Bardziej formalnie: `zip()` zwraca i iterator z krotka, gdzie i-ty krotka zawiera i-ty element z każdego z argument iterable .

  Innym sposobem myślenia o `zip()` jest to, że zamienia wiersze w kolumny, a kolumny w wiersze. Jest to podobne do przekształcania macierzy.

  `zip()` jest leniwy: Elementy nie będą przetwarzane, dopóki iterable nie zostanie poddany iteracji, np. przez pętlę `for` lub przez zawinięcie w `list`.

  Jedną rzeczą, którą należy wziąć pod uwagę, jest to, że iterable przekazywane do `zip()` mogą mieć różne długości; czasami z założenia, a czasami z powodu błędu w kodzie, który przygotował te iterable. Python oferuje trzy różne podejścia do radzenia sobie z tym problemem:

  - Przez domyślny, `zip()` zatrzymuje się, gdy najkrótszy iterable jest wyczerpany. Zignoruje pozostałe elementy w dłuższym iterable, obcinając wynik do długości najkrótszego iterable:

        >>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))
        [(0, 'fee'), (1, 'fi'), (2, 'fo')]

  - `zip()` jest często używana w przypadkach, gdy zakłada się, że iterable są równej długości. W takich przypadkach zaleca się użycie opcji `strict=True`. Jej wynik jest taki sam jak zwykłego `zip()`:

        >>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))
        [('a', 1), ('b', 2), ('c', 3)]

    W przeciwieństwie do domyślnego zachowania , rzuci `ValueError`, jeśli jeden iterable zostanie wyczerpany przed innymi:

        >>> for item in zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True):
        ...     print(item)
        ...
        (0, 'fee')
        (1, 'fi')
        (2, 'fo')
        Traceback (most recent call last):
          ...
        ValueError: zip() argument 2 is longer than argument 1

    Bez `strict=True` argumentu, każdy błąd, który skutkuje iterable o różnych długościach zostanie wyciszony, prawdopodobnie objawiając się jako trudny do znalezienia błąd w innej części programu.

  - Krótsze iterable mogą być uzupełnione stałą wartością, aby wszystkie iterable miały taką samą długość. Odbywa się to poprzez `itertools.zip_longest()`.

  Przypadki brzegowe: Z pojedynczym iterable argument, `zip()` zwraca iterator z 1-krotka. Bez argumentu, to zwraca pusty iterator.

  Wskazówki i porady:

  - Kolejność oceny od lewej do prawej strony iterable jest gwarantowana. Umożliwia to idiom grupowania serii danych w grupy o długości n przy użyciu `zip(*[iter(s)]*n, strict=True)`. Powtarza to tę samą iterator `n` razy, tak że każde wyjście krotka ma wynik wywołań `n` do iteratora. Powoduje to podzielenie danych wejściowych na fragmenty o długości n.

  - `zip()` w połączeniu z operatorem `*` może być użyty do rozpakowania listy:

        >>> x = [1, 2, 3]
        >>> y = [4, 5, 6]
        >>> list(zip(x, y))
        [(1, 4), (2, 5), (3, 6)]
        >>> x2, y2 = zip(*zip(x, y))
        >>> x == list(x2) and y == list(y2)
        True

  Zmienione w wersji 3.10: Dodano argument `strict` .

__import__(name, globals=None, locals=None, fromlist=(), level=0)

  Informacja

  Jest to zaawansowana funkcja, która nie jest potrzebna w codziennym programowaniu Pythona, w przeciwieństwie do `importlib.import_module()`.

  Ten funkcja jest wywoływany przez `import` instrukcja . Można go zastąpić (importując `builtins` moduł i przypisując do `builtins.__import__`) w celu zmiany semantyki `import` instrukcja , ale jest to bardżo odradzane, ponieważ zwykle prostsze jest użycie haków importu (zobacz PEP 302), aby osiągnąć te same cele i nie powoduje problemów z kodem, który zakłada, że implementacja importu domyślny jest w użyciu. Bezpośrednie użycie `__import__()` jest również odradzane na korzyść `importlib.import_module()`.

  Funkcja importuje moduł name, potencjalnie używając podanych globals i locals do określenia, jak interpretować nazwę w kontekście pakietu. fromlist podaje nazwy obiektów lub submodułów, które powinny zostać zaimportowane z moduł podanego przez name. Standardowa implementacja nie używa locals argumentu w ogóle i używa globals tylko do określenia kontekstu pakietu `import` instrukcja .

  level określa, czy ma być używany import bezwzględny czy względny. `0` (domyślnie) oznacza tylko import bezwzględny. Dodatnie wartości dla level wskazują liczbę katalogów nadrzędnych do przeszukania względem katalogu moduł wywołującego `__import__()` (zobacz PEP 328 dla szczegółów).

  Gdy zmienna name ma postać `package.module`, zwykle zwracany jest pakiet najwyższego poziomu (nazwa do pierwszej kropki), nie moduł nazwany przez name. Jednakże, gdy podana jest niepusta fromlist argument, zwracany jest moduł nazwany przez name.

  Na przykład, instrukcja `import spam` skutkuje kodem bajtowym przypominającym następujący kod:

      spam = __import__('spam', globals(), locals(), [], 0)

  Instrukcja `import spam.ham` skutkuje następującym połączeniem:

      spam = __import__('spam.ham', globals(), locals(), [], 0)

  Zauważ, że `__import__()` zwraca toplevel moduł tutaj, ponieważ jest to obiekt, który jest powiązany z nazwą przez `import` instrukcje .

  Z drugiej strony, instrukcja `from spam.ham import eggs, sausage as saus` skutkuje

      _temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
      eggs = _temp.eggs
      saus = _temp.sausage

  Tutaj obiekt `spam.ham` jest zwracany z `__import__()`. Z tego obiektu pobierane są nazwy do zaimportowania i przypisywane do odpowiednich nazw.

  Jeśli chcesz po prostu zaimportować moduł (potencjalnie w ramach pakietu) według nazwy, użyj `importlib.import_module()`.

  Zmienione w wersji 3.3: Ujemne wartości dla level nie są już obsługiwane (co również zmienia wartość domyślny na 0).

  Zmienione w wersji 3.9: Gdy używane są opcje wiersza poleceń `-E` lub `-I`, opcja zmienna środowiskowa `PYTHONCASEOK` jest teraz ignorowana.

Przypisy

[1]

Zwróć uwagę, że parser akceptuje tylko Unixowy styl końca linii. Jeśli wczytujesz kod z pliku, wykorzystaj konwersję linii aby przekonwertować style końca linii Winows albo Mac.