Если создать файл Python с именем, совпадающим с именем встроенного модуля (например, math.py, random.py, os.py), произойдет замещение встроенного модуля.
Когда Python попытается импортировать модуль с этим именем (например, import math), он сначала будет искать файл math.py в текущей директории и в директориях, указанных в sys.path.
Если файл math.py будет найден раньше, чем встроенный модуль math, Python импортирует именно этот файл. Это может привести к следующим последствиям:
math.py не содержит тех же функций и констант, что и встроенный модуль math, код, который опирается на эти функции, выдаст ошибки AttributeError (например, AttributeError: module 'math' has no attribute 'sqrt').Важно помнить: Замещение встроенных модулей - это плохая практика. Это значительно ухудшает читаемость кода, делает его более хрупким и затрудняет отладку. Следует избегать использования имен встроенных модулей для своих файлов.
Пример:
    
      # Создаем файл math.py в той же директории, что и основной скрипт
      # math.py
      def sqrt(x):
        return x * 2  # Неправильная реализация квадратного корня
      # main.py
      import math
      print(math.sqrt(9)) # Выведет 18, а не 3
    
  
  В этом примере, при запуске main.py будет использована функция sqrt из вашего файла math.py, а не из встроенного модуля math.  Результат будет неожиданным и неправильным.
Чтобы избежать этой проблемы, всегда используйте осмысленные и уникальные имена для своих файлов и модулей, которые не совпадают с именами встроенных модулей или стандартных библиотек Python.