Python 为什么在函数中声明变量要慢得多(对于jupyter笔记本来说太慢了)

Python 为什么在函数中声明变量要慢得多(对于jupyter笔记本来说太慢了),python,function,variables,jupyter-notebook,Python,Function,Variables,Jupyter Notebook,我有以下函数,它组合了多个函数,但这是“最终函数” 这很好,“boek”和“vol_boek”在“tellen()之外声明。它速度快,效果好 然而,当我像这样将“boek”和“vol_boek”的声明放在“tellen()”中时,速度非常慢,jupyter笔记本电脑会在一段时间后超时。你能告诉我这是为什么吗?本质上似乎是一样的。有没有办法用set()执行函数?我需要用一个空集启动函数,所以我使用了boek=set() 这是我的代码,里面有声明: def tellen(): boek =

我有以下函数,它组合了多个函数,但这是“最终函数”

这很好,“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.") 
p、 这是我代码的其余部分:

def inhoud_pakje():
    pakje = np.random.choice(range(10), 4, replace=False)
    return pakje

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

plakken(boek)

你确定这不仅仅是因为
boek
plakken
中没有定义而出错吗?嘿,谢谢你的回答。我将
boek=set()
添加到笔记本的“顶部”,并将
boek=set()
添加到“plakken()”。我希望通过这种方式,以一个空的“boek”开始每一次执行plakken。这行不通。jupyter笔记本中的手机一直在运行,我修好了!使用boek.clear()以“空集”开头感谢您的回答!!!
def plakken():
    pakje = inhoud_pakje()
    for i in pakje:
        boek.update(pakje)
    return boek
plakken(boek)
def plakken(boek):