Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 出于某种原因,我的代码认为全局变量是局部变量_Python_Kivy - Fatal编程技术网

Python 出于某种原因,我的代码认为全局变量是局部变量

Python 出于某种原因,我的代码认为全局变量是局部变量,python,kivy,Python,Kivy,所以我在做一个基本的应用程序,按下一个按钮,它把数字加到总数上,总数是一个全局变量,但程序认为它是一个局部变量 totalCarbs = 0 apple = 12 def addCarbsToTotal(food): if food == "Apple": print("Apple") totalCarbs += apple print(totalCarbs) 以下是代码,如有任何帮助,将不胜感激。您需要指定函数中变量的全局范围: totalC

所以我在做一个基本的应用程序,按下一个按钮,它把数字加到总数上,总数是一个全局变量,但程序认为它是一个局部变量

totalCarbs = 0
apple = 12

def addCarbsToTotal(food):
    if food == "Apple":
        print("Apple")
        totalCarbs += apple
    print(totalCarbs)

以下是代码,如有任何帮助,将不胜感激。

您需要指定函数中变量的全局范围:

totalCarbs = 0
apple = 12

def addCarbsToTotal(food):
    global totalCarbs, apple
    if food == "Apple":
        print("Apple")
        totalCarbs += apple
    print(totalCarbs)

您需要指定函数中变量的全局范围:

totalCarbs = 0
apple = 12

def addCarbsToTotal(food):
    global totalCarbs, apple
    if food == "Apple":
        print("Apple")
        totalCarbs += apple
    print(totalCarbs)
总碳水化合物(本地)=总碳水化合物(全球)+苹果 你可以这样做

def addCarbsToTotal(food):
    global totalCarbs
    if food == "Apple":
        print("Apple")
        totalCarbs += apple
    print(totalCarbs)
总碳水化合物(本地)=总碳水化合物(全球)+苹果 你可以这样做

def addCarbsToTotal(food):
    global totalCarbs
    if food == "Apple":
        print("Apple")
        totalCarbs += apple
    print(totalCarbs)

您必须使用
global totalCarbs
内部函数-当您想使用
=
+=
等更改外部变量的值时,需要使用该函数。但当您只想从外部值获取值时,不需要该函数。顺便说一句:Kivy通常使用类,所以您可能应该将函数和变量保留在类中,并使用
self。
而不是使用全局变量,将
totalCarbs
作为参数传递并返回它。规则非常简单:如果在函数体中的任何位置分配变量(使用
=
+=
),则该变量被视为局部变量,除非您将其声明为
global
。您必须在函数内部使用
global totalCarbs
——当您想使用
=
+=
等更改外部变量中的值时,需要使用该函数。但当您只想从外部值中获取值时,不需要该函数。顺便说一句:Kivy通常使用类,所以您可能应该将函数和变量保留在类中,并使用
self。
而不是使用全局变量,将
totalCarbs
作为参数传递并返回它。规则非常简单:如果在函数体的任何位置分配变量(使用
=
+=
),则该变量被视为局部变量,除非将其声明为
全局