Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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_Namespaces - Fatal编程技术网

Python 如何回调由其他函数组成的函数?

Python 如何回调由其他函数组成的函数?,python,namespaces,Python,Namespaces,我正在尝试用Python和Tkinter编写应用程序。它将执行由几个函数组成的计算,这些函数将彼此的输出作为参数。并将向用户显示最后的函数结果 在后端,代码似乎工作正常,例如下面的50按预期打印。但我无法使按钮正常工作 import tkinter as tk main_window = tk.Tk() a=1 b=2 c=3 d=4 e=5 def function (a,b,c): return a+b+c def sumation (d): sum = functi

我正在尝试用Python和Tkinter编写应用程序。它将执行由几个函数组成的计算,这些函数将彼此的输出作为参数。并将向用户显示最后的函数结果

在后端,代码似乎工作正常,例如下面的50按预期打印。但我无法使按钮正常工作

import tkinter as tk

main_window = tk.Tk()

a=1
b=2
c=3
d=4
e=5

def function (a,b,c):
    return a+b+c

def sumation (d):
    sum = function (a,b,c)
    return sum + d

def multiplication (e):
    return sumation (d) * e

def callback():
   print (multiplication (e))

print (multiplication (e))

b = tk.Button(text="click me", command=callback)
b.pack()

main_window.mainloop()

我希望每次按下按钮都会打印50,但我收到了以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:...\Programs\Python\Python37-32\Lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:.../Programs/Python/Python37-32/Lib/Program.py", line 24, in callback
    print (multiplication (e))

是因为一个函数包含其他函数输出的原因吗?与一个功能一样,它似乎工作正常。如果是,是否有解决此问题的方法?

您切断了包含实际错误消息的回溯部分-但可能与以下事实有关:
b
在单击按钮时已从2重新定义为按钮。所以
function()
正在尝试计算
1+Button+3
…非常感谢您,将b=tk.Button(text=“click me”,command=callback)更改为btn=tk.Button(text=“click me”,command=callback)。解决了问题。旁注:不要命名函数
函数
。这是一个内置名称,不应被覆盖。