Почему объявление переменных внутри функции намного медленнее (слишком медленно для jupyter notebook) - PullRequest
0 голосов
/ 13 января 2020

У меня есть следующая функция, она объединяет несколько функций, но это «конечная функция»

boek = set()
vol_boek = set(np.arange(10))

def tellen():
    aantal_keren = 0
    while boek != vol_boek:
        plakken()
        aantal_keren += 1
    print(f"Er waren {aantal_keren} pakjes nodig om het boek te vullen.") 

Это прекрасно работает, «boek» и «vol_boek» объявляются вне «tellen ()» Это быстро и хорошо работает.

однако, когда я помещаю объявление "boek" и "vol_boek" внутри "tellen ()", как это, это действительно медленно и время ожидания ноутбука от jupyter истекает через некоторое время. Можете ли вы сказать мне, почему это? Вроде то же самое по сути. Есть ли способ выполнить функцию с set () внутри? Мне нужно запустить функцию с пустым набором, поэтому я использовал boek = set ().

Это мой код с объявлением внутри:

def tellen():
    boek = set()
    vol_boek = set(np.arange(10))
    aantal_keren = 0
    while boek != vol_boek:
        plakken()
        aantal_keren += 1
    print(f"Er waren {aantal_keren} pakjes nodig om het boek te vullen.") 

ps это остальная часть мой код:

def inhoud_pakje():
    pakje = np.random.choice(range(10), 4, replace=False)
    return pakje
def plakken():
    pakje = inhoud_pakje()
    for i in pakje:
        boek.update(pakje)
    return boek

1 Ответ

0 голосов
/ 13 января 2020

Похоже, что вы только что получили ошибку, так как boek не задан в plakken, вам нужно вместо этого передать его в качестве параметра.

plakken(boek)
def plakken(boek):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...