在函数外部访问函数变量?

2023-12-28

我是初学者,这是我正在上的课程。我知道关于return,但它不允许我在这段代码中做我想做的事情

这是包含变量的函数:

def disp_cookies():
    # This stuff is just for a print display
    inx = 0 # Displays list vertically 
    while inx < len(flavor_names):
        print("{}. {}".format(inx + 1, flavor_names[inx]))
        inx += 1

    valid_data = False
    while not valid_data:
        try:
            # This is the variable I need
            flavor = int(input("\nSelect a number for flavor> "))

            if 0 < flavor <= len(flavor_names):
                item_list.append(flavor)
                print(flavor_names[int(flavor) - 1])
                return flavor    # This is the return
                break

        except Exception:
            print("\nError. Please try again")
        else:
            print("\nPlease enter a valid response")

这是我尝试使用该变量的地方:

print("\n", flavor) # This is outside of the function in the previous snippet btw
print("\n{}s, {} box(es), ${} total".format(flavor_names[flavor - 1], qty_list[order_no], item_total))

这是我得到的错误:

Traceback (most recent call last):
  File "C:\Users\wiche\Documents\School\Python CIS122\L8_orderCost.py", line 95, in <module>
    print("\n", flavor)
NameError: name 'flavor' is not defined

我可以通过定义来消除错误flavor在函数之外,但是当我使用它时变量中的数据是错误的。知道我能做些什么来解决它吗?

请记住,我是一个绝对的初学者,你所看到的基本上是我迄今为止对 python 的理解

谢谢你!


当函数返回时,函数内的变量消失(“超出范围”)。

要从函数中获取值,您需要做两件事:

  1. 在函数中 -return一个或多个值。

  2. 当您调用该函数时 - 保存一个或多个值。您可以通过设置一个等于函数结果的变量来做到这一点:flavour = display_cookies().

考虑这个例子:

def answer_to_life():
    answer = 42
    return answer

ans = answer_to_life()
print (ans)             # output: 42

请注意,我在函数中使用了不同的变量名称(answer)和外部(ans)。您可以使用相同的名称,但这可能会让您在教育初期感到困惑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在函数外部访问函数变量? 的相关文章

随机推荐