Python 3.4+socketпонятие
socket.AddressFamily
константы
Перечисление IntEnum семейств адресов: AF_INET (IPv4), AF_INET6 (IPv6), AF_UNIX и других.
Синтаксис
socket.AddressFamily.AF_INET # то же, что socket.AF_INET
Начиная с 3.11 print(socket.AF_INET) печатает 2, а не имя: str() у IntEnum стал числом; имя даёт .name, полную запись — repr(). Числовые значения разные в разных ОС (AF_INET6 — 10 в Linux, 30 в macOS, 23 в Windows), поэтому сравнивают с константой, а не с числом. AF_UNIX есть не везде: на старых Windows его нет вовсе.
Примеры
# Python 3.11+
import socket
print(repr(socket.AF_INET)) # → <AddressFamily.AF_INET: 2>
print(socket.AF_INET) # → 2
print(socket.AF_INET.name) # → AF_INET
print(isinstance(socket.AF_INET6, socket.AddressFamily)) # → True
print(socket.AF_INET6.value) # → ? 10 на Linux, 30 на macOS, 23 на Windows
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности