【问题标题】:Why is declaring the variables inside a function much slower (too slow for jupyter notebook)为什么在函数中声明变量要慢得多(对于 jupyter notebook 来说太慢了)
【发布时间】:2020-01-13 10:35:28
【问题描述】:

我有以下功能,它结合了多个功能,但这是“最终功能”

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()”之外声明的。它速度快而且效果很好。

但是,当我像这样在“tellen()”中放置“boek”和“vol_boek”的声明时,它真的很慢,并且 jupyter notebook 会在一段时间后超时。你能告诉我这是为什么吗?本质上似乎是一样的。有没有办法在里面执行带有 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.") 

附言这是我的其余代码:

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

【问题讨论】:

  • 您确定这不仅仅是因为boekplakken 中未定义而导致错误吗?
  • 您好,感谢您的回答。我已将boek = set() 添加到笔记本的“顶部”,并将boek = set() 添加到“plakken()”。这样我希望每次执行 plakken 时都用一个空的“boek”。这不起作用。 jupyter notebook 中的单元格一直在运行。
  • 我修好了!使用 boek.clear() 以“空集”开头感谢您的回答!!!

标签: python function variables jupyter-notebook


【解决方案1】:

看起来您只是在 plakken 中未定义 boek 时遇到错误,您需要将其作为参数传入。

plakken(boek)
def plakken(boek):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 2016-05-15
    • 1970-01-01
    相关资源
    最近更新 更多