Унарні арифметичні та порозрядні операції

Оновлено: 24.04.2023

Усі унарні арифметичні та порозрядні операції мають однаковий пріоритет:

u_expr ::=  power | "-" u_expr | "+" u_expr | "~" u_expr

Унарний оператор - (мінус) дає заперечення свого числового аргументу; операцію можна перевизначити спеціальним методом __neg__().

Унарний оператор + (плюс) повертає свій числовий аргумент без змін; операцію можна перевизначити спеціальним методом __pos__().

Унарний оператор ~ (інвертування) дає порозрядну інверсію свого цілочисельного аргументу. Побітова інверсія x визначається як -(x+1). Це стосується лише цілих чисел або користувацьких об’єктів, які замінюють спеціальний метод __invert__().

В усіх трьох випадках, якщо аргумент не має належного типу, виникає виняток TypeError.