我有一个当按下按钮时调用的函数:
def generate_noise():
var = self.add_snr_textbox.get()
controller.generate_noise(var)
它对应于我的控制器类中的函数:
^{pr2}$但是,当我尝试运行它时,我得到了错误TypeError: generate_noise() takes no arguments (1 given)
。为什么会这样?在
更多细节
main.py
from Tkinter import *
import ttk
import tkFileDialog
import controller
root = Tk()
content = ttk.Frame(root)
controller = controller.Controller()
class Main(Frame):
...
def generate_noise():
var = self.add_snr_textbox.get()
controller.generate_noise(var)
controller.py
class Controller():
def generate_noise(self, snr):
print snr
您给出的第一个
Main.generate_noise()
函数定义(没有参数的定义)引用了self
变量。但是,由于您没有打算引用的全局self
,因此没有给Main.generate_noise()
函数一种访问self
的方法。您需要将self
作为参数添加到Main.generate_noise
签名中,这样Main.generate_noise
可以使用而不是
^{pr2}$您得到的错误表明您已经将此函数作为实例方法在代码中的其他地方调用,因此此更改应该同时修复
TypeError
和如果您用另一种方法修复的话,self
的错误。在编辑:根据提供的其他信息,我已经澄清了在这篇文章中使用的名字。在
相关问题 更多 >
编程相关推荐