📊
Python Docs
  • Стандартная библиотека Python
  • Общее описание
    • Введение
    • Оглавление
    • Содержание по порядку
    • Содержание по алфавиту
  • Встроенные объекты
    • Встроенные функции
      • abs ()
      • open ()
    • Встроенные типы
    • Встроенные исключения
  • Модули стандартной библиотеки
    • Обработка текста
      • string
      • re
        • Синтаксис регулярных выражений
        • Составляющие модуля
          • re.match ()
        • Объекты шаблона Pattern
        • Объекты совпадения Match
        • Примеры регулярных выражений
      • difflib
      • textwrap
      • unicodedata
      • stringprep
      • readline
      • rlcompleter
    • Двоичные данные
      • struct
        • struct.error
        • struct.pack ()
        • struct.pack_into ()
        • struct.unpack ()
        • struct.unpack_from ()
        • struct.iter_unpack ()
        • struct.calcsize ()
        • struct.Struct
        • struct.Struct.pack ()
        • struct.Struct.pack_into ()
        • struct.Struct.unpack ()
        • struct.Struct.unpack_from ()
        • struct.Struct.iter_unpack ()
        • struct.Struct.format
        • struct.Struct.size
      • codecs
    • Специальные типы данных
      • datetime
      • calendar
        • calendar.Calendar
          • Calendar.timegm ()
        • calendar.TextCalendar
        • calendar.HTMLCalendar
        • calendar.LocaleTextCalendar
        • calendar.LocaleHTMLCalendar
        • Функции calendar
      • collections
      • collections.abc
      • heapq
      • bisect
      • array
      • weakref
      • types
      • copy
      • pprint
      • reprlib
      • enum
        • Содержание модуля
          • enum.IntEnum
        • Создание Enum
    • Математические модули
      • numbers
      • math
      • cmath
      • decimal
      • fractions
      • random
      • statistics
    • Функциональные программные модули
      • itertools
      • functools
        • functools.cache()
        • functools.cached_property()
        • functools.cmp_to_key()
        • functools.lru_cache()
        • functools.total_ordering
        • functools.partial()
        • functools.partialmethod()
        • functools.reduce()
        • functools.singledispatch
        • functools.singledispatchmethod()
        • functools.update_wrapper()
        • functools.wraps()
        • Объекты partial
      • operator
    • Доступ к файлам и папкам
      • pathlib
      • os.path
        • os.path.abspath ()
        • os.path.basename ()
        • os.path.dirname ()
        • os.path.exists ()
        • os.path.expanduser ()
        • os.path.expandvars ()
        • os.path.getsize ()
        • os.path.isfile ()
        • os.path.isdir ()
        • os.path.islink ()
        • os.path.join ()
        • os.path.normcase ()
        • os.path.normpath ()
        • os.path.realpath ()
        • os.path.split ()
        • os.path.splitext ()
      • fileinput
      • stat
      • filecmp
      • tempfile
      • glob
        • glob.glob ()
      • fnmatch
        • fnmatch.fnmatch ()
        • fnmatch.fnmatchcase ()
        • fnmatch.filter ()
        • fnmatch.translate ()
      • linecache
      • shutil
        • shutil.rmtree ()
        • shutil.chown ()
    • Хранение данных
      • pickle
        • HIGHEST_PROTOCOL
        • DEFAULT_PROTOCOL
        • dump ()
        • dumps ()
        • load ()
        • loads ()
        • PickleError
        • PicklingError
        • UnpicklingError
      • copyreg
      • shelve
      • marshal
      • dbm
      • sqlite3
    • Сжатие и архивирование данных
      • zlib
      • gzip
      • bz2
      • lzma
      • zipfile
      • tarfile
    • Форматы файлов
      • csv
      • configparser
      • netrc
      • xdrlib
      • plistlib
    • Криптографические службы
      • hashlib
      • hmac
      • secrets
    • Общие службы операционной системы
      • os
        • os.error
        • os.name ()
        • Параметры процесса
          • os.environ
          • os.fsencode ()
          • os.fsdecode ()
          • os.PathLike
          • os.getenv ()
          • os.getenvb ()
          • os.getpid ()
          • os.getppid ()
          • os.putenv ()
          • os.uname ()
          • os.unsetenv ()
        • Создание файлового объекта
          • os.fdopen ()
        • Операции с файловыми дескрипторами
          • os.close ()
          • os.dup2 ()
          • os.fstat ()
          • os.fsync ()
          • os.isatty ()
          • os.lseek ()
          • os.SEEK_SET
          • os.SEEK_CUR
          • os.SEEK_END
          • os.open ()
          • os.openpty ()
          • os.pipe ()
          • os.read ()
          • os.write ()
        • Файлы и директории
          • os.chdir ()
          • os.chmod ()
          • os.chown ()
          • os.getcwd ()
          • os.listdir ()
          • os.lstat ()
          • os.mkfifo ()
          • os.remove ()
          • os.rename ()
          • os.replace ()
          • os.rmdir ()
          • os.scandir ()
          • os.stat ()
          • os.stat_result
          • os.supports_dir_fd
          • os.supports_fd
          • os.supports_follow_symlinks
          • os.unlink ()
          • os.walk ()
        • Управление процессами
          • os.execl ()
          • os.execle ()
          • os.execlp ()
          • os.execlpe ()
          • os.execv ()
          • os.execve ()
          • os.execvp ()
          • os.execvpe ()
          • os._exit ()
          • os.fork ()
          • os.kill ()
          • os.popen ()
          • os.spawnl ()
          • os.P_NOWAIT
          • os.startfile ()
          • os.system ()
          • os.wait ()
          • os.waitpid ()
          • os.waitstatus_to_exitcode ()
          • os.WNOHANG
        • Разные службы ОС
          • os.curdir
          • os.pardir
          • os.sep
          • os.altsep
          • os.pathsep
          • os.linesep
      • io
        • Высокоуровневый интерфейс модуля
          • io.DEFAULT_BUFFER_SIZE
        • io.IOBase
          • io.IOBase.close ()
          • io.IOBase.fileno ()
          • io.IOBase.flush ()
          • io.IOBase.isatty ()
          • io.IOBase.readline ()
          • io.IOBase.readlines ()
          • io.IOBase.seek ()
          • io.IOBase.writelines ()
        • io.RawIOBase
          • io.RawIOBase.read ()
          • io.RawIOBase.readall ()
          • io.RawIOBase.readinto ()
          • io.RawIOBase.write ()
        • io.BufferedIOBase
          • io.BufferedIOBase.read ()
          • io.BufferedIOBase.write ()
        • io.FileIO
        • io.BytesIO
          • io.BytesIO.getvalue ()
        • io.BufferedReader
          • io.BufferedReader.read ()
        • io.BufferedWriter
          • io.BufferedWriter.flush ()
          • io.BufferedWriter.write ()
        • io.BufferedRandom
        • io.BufferedRWPair
        • io.TextIOBase
          • io.TextIOBase.read ()
          • io.TextIOBase.readline ()
          • io.TextIOBase.seek ()
          • io.TextIOBase.tell ()
          • io.TextIOBase.write ()
        • io.TextIOWrapper
        • io.StringIO
          • io.StringIO.getvalue ()
      • time
        • Функции time
          • time.asctime ()
          • time.ctime ()
          • time.gmtime ()
          • time.localtime ()
          • time.mktime ()
          • time.sleep ()
          • time.strftime ()
          • time.strptime ()
          • time.struct_time
          • time.time ()
        • Константы идентификатора часов
        • Константы часового пояса
      • argparse
      • getopt
      • logging
      • logging.config
      • logging.handlers
      • getpass
      • curses
      • curses.textpad
      • curses.ascii
      • curses.panel
      • platform
      • errno
      • ctypes
    • Параллельное выполнение
      • threading
        • Объекты Thread
        • Объекты Lock
        • Объекты RLock
        • Объекты Condition
        • Объекты Semaphore
        • Объекты Event
        • Объекты Timer
        • Объекты Barrier
      • multiprocessing
      • multiprocessing.shared_memory
      • concurrent
      • concurrent.futures
      • subprocess
        • subprocess.PIPE
        • subprocess.Popen
        • Popen.wait ()
        • Popen.communicate ()
        • Popen.args
        • Popen.stdin
        • Popen.stdout
        • Popen.stderr
        • Popen.pid
        • Popen.returncode
        • subprocess.call ()
      • sched
      • queue
        • queue.Queue
        • queue.LifoQueue
        • queue.PriorityQueue
        • queue.SimpleQueue
        • queue.Empty
        • queue.Full
        • Queue.qsize ()
        • Queue.empty ()
        • Queue.full ()
        • Queue.put ()
        • Queue.put_nowait ()
        • Queue.get ()
        • Queue.get_nowait ()
        • Queue.task_done ()
        • Queue.join ()
        • SimpleQueue.qsize ()
        • SimpleQueue.empty ()
        • SimpleQueue.put ()
        • SimpleQueue.put_nowait ()
        • SimpleQueue.get ()
        • SimpleQueue.get_nowait ()
      • _thread
        • _thread.error
        • _thread.LockType
        • _thread.start_new_thread ()
        • _thread.interrupt_main ()
        • _thread.exit ()
        • _thread.allocate_lock ()
        • _thread.get_ident ()
        • _thread.get_native_id ()
        • _thread.stack_size ()
        • _thread.TIMEOUT_MAX
        • lock.acquire ()
        • lock.release ()
        • lock.locked ()
      • _dummy_thread
      • dummy_threading
      • contextvars
    • Сетевое и межпроцессное взаимодействие
      • asyncio
        • Краткий список API
      • socket
        • Семейство сокетов
          • AF_UNIX
          • AF_INET
          • AF_INET6
          • AF_NETLINK
          • AF_TIPC
          • AF_CAN
          • PF_SYSTEM
          • AF_BLUETOOTH
          • AF_ALG
          • AF_VSOCK
          • AF_PACKET
          • AF_QIPCRTR
          • IPPROTO_UDPLITE
        • Исключения сокетов
          • socket.error
          • socket.herror
          • socket.gaierror
          • socket.timeout
        • Константы сокетов
          • socket.AF_UNIX
          • socket.AF_INET
          • socket.AF_INET6
          • socket.SOCK_STREAM
          • socket.SOCK_DGRAM
          • socket.SOCK_RAW
          • socket.SOCK_NONBLOCK
          • socket.SOCK_CLOEXEC
          • socket.AF_CAN
          • socket.CAN_BCM
          • socket.CAN_ISOTP
          • socket.CAN_J1939
          • socket.AF_PACKET
          • socket.AF_RDS
        • Функции сокетов
          • socket.socket ()
          • socket.create_connection ()
          • socket.fromfd ()
          • socket.close ()
          • socket.getaddrinfo ()
          • socket.getfqdn ()
          • socket.gethostbyname ()
          • socket.gethostbyname_ex ()
          • socket.gethostname ()
          • socket.gethostbyaddr ()
          • socket.getnameinfo ()
          • socket.getprotobyname ()
          • socket.getservbyname ()
          • socket.getservbyport ()
          • socket.ntohl ()
          • socket.htonl ()
          • socket.getdefaulttimeout ()
          • socket.setdefaulttimeout ()
        • Объекты сокетов
          • socket.accept ()
          • socket.bind ()
          • socket.close ()
          • socket.connect ()
          • socket.fileno ()
          • socket.getpeername ()
          • socket.listen ()
          • socket.makefile ()
          • socket.recv ()
          • socket.send ()
          • socket.sendall ()
          • socket.setblocking ()
          • socket.settimeout ()
          • socket.shutdown ()
          • socket.type
      • ssl
      • select
        • Атрибуты модуля
          • select.select ()
        • Объекты опроса devpoll
        • Объекты epoll
        • Объекты опроса poll
        • Объекты kqueue
        • Объекты kevent
      • selectors
      • asyncore
      • asynchat
      • signal
        • Константы модуля signal
          • signal.SIG_DFL
          • signal.SIG_IGN
          • signal.SIGABRT
          • signal.SIGALRM
          • signal.SIGBREAK
          • signal.SIGCHLD
          • signal.SIGFPE
          • signal.SIGILL
          • signal.SIGINT
          • signal.SIGPIPE
          • signal.SIGSEGV
          • signal.SIGTERM
          • signal.SIGUSR1
          • signal.SIGUSR2
          • signal.CTRL_C_EVENT
          • signal.CTRL_BREAK_EVENT
          • signal.SIG_BLOCK
          • signal.SIG_UNBLOCK
          • signal.SIG_SETMASK
        • Исключения модуля signal
        • Функции модуля signal
          • signal.alarm ()
          • signal.getsignal ()
          • signal.strsignal ()
          • signal.valid_signals ()
          • signal.pause ()
          • signal.raise_signal ()
          • signal.pthread_kill ()
          • signal.pthread_sigmask ()
          • signal.signal ()
          • signal.sigpending ()
          • signal.sigwait ()
          • signal.sigwaitinfo ()
          • signal.sigtimedwait ()
      • mmap
    • Обработка интернет данных
      • email
      • json
      • mailcap
      • mailbox
      • mimetypes
      • base64
      • binhex
      • binascii
      • quopri
      • uu
    • Обработка упорядоченной разметки
      • html
      • html.parser
      • html.entities
      • Модули обработки XML
      • xml.etree.ElementTree
      • xml.dom
      • xml.dom.minidom
      • xml.dom.pulldom
      • xml.sax
      • xml.sax.handler
      • xml.sax.saxutils
      • xml.sax.xmlreader
      • xml.parsers.expat
    • Интернет протоколы
      • webbrowser
      • cgi
      • cgitb
      • wsgiref
      • urllib
      • urllib.request
      • urllib.response
      • urllib.parse
      • urllib.error
      • urllib.robotparser
      • http
      • http.client
      • ftplib
      • poplib
      • imaplib
      • nntplib
      • smtplib
      • smtpd
      • telnetlib
      • uuid
      • socketserver
      • http.server
      • http.cookies
      • http.cookiejar
      • xmlrpc
      • xmlrpc.client
      • xmlrpc.server
      • ipaddress
    • Мультимедиа службы
      • audioop
      • aifc
      • sunau
      • wave
      • chunk
      • colorsys
      • imghdr
      • sndhdr
      • ossaudiodev
    • Интернационализация
      • gettext
      • locale
    • Программные фреймворки
      • turtle
      • cmd
      • shlex
    • Графические интерфейсы пользователя с Tk
      • tkinter
      • tkinter.ttk
      • tkinter.tix
      • tkinter.scrolledtext
      • IDLE
      • Другие пакеты графических интерфейсов
    • Инструменты разработки
      • typing
      • pydoc
      • doctest
      • unittest
      • unittest.mock
      • 2to3
      • test
      • test.support
      • test.support.script_helper
    • Отладка и профилирование
      • Таблица событий аудита
      • bdb
      • faulthandler
      • pdb
      • Профилировщики Python
      • timeit
      • trace
      • tracemalloc
    • Упаковка и распространение программ
      • distutils
      • ensurepip
      • venv
      • zipapp
    • Службы среды выполнения Python
      • sys
        • sys.argv
        • sys.executable
        • sys.exit ()
        • sys.getdefaultencoding ()
        • sys.getfilesystemencoding ()
        • sys.path
        • sys.platform
        • sys.setcheckinterval ()
        • sys.setswitchinterval ()
        • sys.stdin, sys.stdout, sys.stderr
        • sys.unraisablehook ()
      • sysconfig
      • builtins
      • __main__
      • warnings
      • dataclasses
      • contextlib
      • abc
      • atexit
      • traceback
      • __future__
      • gc
      • inspect
      • site
    • Пользовательские интерпретаторы Python
      • code
      • codeop
    • Импортирование модулей
      • zipimport
      • pkgutil
      • modulefinder
      • runpy
      • importlib
      • importlib.metadata
    • Службы языка Python
      • parser
      • ast
      • symtable
      • symbol
      • token
      • keyword
      • tokenize
      • tabnanny
      • pyclbr
      • py_compile
      • compileall
      • dis
      • pickletools
    • Разные службы
      • formatter
    • Специальные службы MS Windows
      • msilib
      • msvcrt
        • msvcrt.kbhit ()
        • msvcrt.getch ()
        • msvcrt.getche ()
        • msvcrt.putch ()
      • winreg
      • winsound
    • Специальные службы Unix
      • posix
      • pwd
      • spwd
      • grp
      • crypt
      • termios
      • tty
      • pty
      • fcntl
      • pipes
      • resource
      • nis
      • syslog
    • Замененные модули
      • optparse
      • imp
    • Недокументированные модули
      • Специфичные модули платформы
Powered by GitBook
On this page

Was this helpful?

  1. Модули стандартной библиотеки
  2. Функциональные программные модули
  3. functools

functools.total_ordering

@functools.total_ordering

Дает для класса, определяющего один или несколько методов упорядочения с расширенными возможностями сравнения, этот декоратор класса предоставляет все остальное. Это упрощает работу по указанию всех возможных операций расширенного сравнения:

Класс должен определять одно из __lt__(), __le__(), __gt__() или __ge__(). Кроме того, класс должен предоставлять метод __eq__().

Например:

@total_ordering
class Student:
    def _is_valid_operand(self, other):
        return (hasattr(other, "lastname") and
                hasattr(other, "firstname"))
    def __eq__(self, other):
        if not self._is_valid_operand(other):
            return NotImplemented
        return ((self.lastname.lower(), self.firstname.lower()) ==
                (other.lastname.lower(), other.firstname.lower()))
    def __lt__(self, other):
        if not self._is_valid_operand(other):
            return NotImplemented
        return ((self.lastname.lower(), self.firstname.lower()) <
                (other.lastname.lower(), other.firstname.lower()))

Хотя этот декоратор упрощает создание полностью упорядоченных типов с хорошим поведением, он все же достигается за счет более медленного выполнения и более сложных трассировок стека для производных методов сравнения. Если бенчмаркинг производительности показывает, что это узкое место для данного приложения, реализация вместо этого всех шести разнообразных методов сравнения, скорее всего, обеспечит легкий прирост скорости.

Новое в версии 3.2.

Изменено в версии 3.4: теперь поддерживается возврат NotImplemented из базовой функции сравнения для нераспознанных типов.

Previousfunctools.lru_cache()Nextfunctools.partial()

Last updated 4 years ago

Was this helpful?