Почему моя функция python3 работает без вызова?

Использование python3.8 в macOS

У меня есть функция с циклом while внутри, и я также импортирую два других файла .py из того же каталога, которые содержат нужные мне функции.

import Scraper
import Creator

def main(index=1):
    operation = True
    while operation == True:
        try:
            Scraper.scraper()
            Creator.Auto(index)

        except Exception as e:
            print(e)
            operation = False

    return

Без вызова main(), если я запущу свою программу, она все равно запустит функцию main(). Это также происходит, когда я вызываю main(), программа затем запускается с использованием цикла while, но только после выполнения функции один раз до начала цикла while. (т.е. функция запустится на один раз больше, чем ожидалось)

Я не сталкивался с такой проблемой раньше. Любые советы по исправлению этого?

У вас есть код внутри двух других файлов, который не находится внутри функции?

Nick ODell 21.02.2023 21:35

Ничто стандартное не будет выполняться main автоматически. Если вам не нужны операторы import для воспроизведения проблемы, избавьтесь от них и объясните, как именно вы выполняете скрипт. Если вам нужны один или оба оператора import, содержимое импортируемых модулей имеет значение.

chepner 21.02.2023 21:36

Можете ли вы показать код из Scraper и Creator (при условии, что это то, что вы сделали). Если они вызовут main в этом файле py, это может привести к этому

Buzzkillionair 21.02.2023 21:36

Возможно ли, что у вас есть такой код в одном из этих двух импортов?: if __name__ == "__main__": main()

Joao Luiz Cadore 21.02.2023 21:38

Функция traceback.print_stack печатает текущую трассировку стека. Если вы назовете это main, вы увидите, что называется main.

Michael Butscher 21.02.2023 21:41

@chepner, я считаю, что ты в корне проблемы. Я, на самом деле, просто идиот. Оба файла импорта вызывают функции из соответствующих файлов. Всякий раз, когда я импортирую оба модуля в этот main.py, также будут вызываться любые вызовы функций из модулей.

Gablo Ficazzo 21.02.2023 21:51

Чтобы ответить на ваш вопрос, нам нужно увидеть содержимое Scraper.py и Creator.py

Paul M. 21.02.2023 21:51
Потяните за рычаг выброса энергососущих проектов
Потяните за рычаг выброса энергососущих проектов
На этой неделе моя команда отменила проект, над которым я работал. Неделя усилий пошла насмарку.
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Привет, люди RPA, это снова я и я несу подарки! В очередном моем приключении о том, как создавать ботов для облегчения рутины. Вот, думаю, стоит...
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
Учебник по веб-скрапингу
Учебник по веб-скрапингу
Привет, ребята... В этот раз мы поговорим о веб-скрейпинге. Целью этого обсуждения будет узнать и понять, что такое веб-скрейпинг, а также узнать, как...
1
7
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте проверить другие файлы .py. Однажды у меня была такая же проблема, когда другие мои файлы .py содержали вызовы функций. Когда вы импортируете файл .py и он содержит вызов функции, эта функция может быть вызвана автоматически.

Другие вопросы по теме