如何将文件A中的变量传递给文件B中的类中的函数

时间:2018-06-10 21:00:41

标签: python tkinter sqlite

我一直在阅读很多关于课程和实例的文章和网站。但没有人能够为我提供这个问题的明确答案。如何将变量从一个文件传递到另一个文件中嵌套在类中的函数?

在我的数据库文件中,我从给定的行中获取了各个值。我需要将这些变量传递给我的Main文件中的一个函数,该文件位于一个类中。

运行下面的代码时出现以下错误:TypeError: PrintData() missing 1 required positional argument: 'DOB'

def DisplayStudent(self):
    txtStudent = self.txtStudent.get()
    DisplayResults(txtStudent)

def PrintData(self, First, Last, Year, Tutor, DOB):
    print(First, Last, Year, Tutor, DOB)

    self.resultStudentFName.config(text = First)

当运行下面的代码时,我得到一个不同的错误:NameError: name 'self' is not defined

def DisplayStudent(self):
    txtStudent = self.txtStudent.get()
    DisplayResults(txtStudent)

def PrintData(First, Last, Year, Tutor, DOB):
    print(First, Last, Year, Tutor, DOB)

    self.resultStudentFName.config(text = First)

注意:这行代码用于数据库文件,没有类。以上两段代码中的任何一段都没有更改过。

from Main import MainPage as MP
MP.PrintData(First, Last, Year, Tutor, DOB)

当我将self作为参数传递给PrintData行时,它会显示NameError: name 'self' is not defined

任何有关此代码的帮助,以及与使用类,函数,模块和文件之间的传递varibales相关的任何文档都将非常感激。

非常感谢, DavalliTV

2 个答案:

答案 0 :(得分:0)

通过它的外观你的顶级剪辑可以工作,除了你只需要在拉入它时初始化类: from Main import MainPage as MP newMP = MP() # or pass in __init__ args as needed newMP.PrintData(First, Last, Year, Tutor, DOB) # assuming these args have been previously defined 你的底部剪断不起作用,因为它是一种静态方法而没有" self"在它的参数列表中(因此你不能在方法中扩展self。)

答案 1 :(得分:0)

我发现了问题所在!我没有通过self。这么小的问题/错误会引起很多挫折!对于那些将来会看到这篇文章的人,请确保仔细阅读错误说明的内容,并确保在使用类时,self已通过。感谢Andrew和PydPiper的努力,我可能已经更好地解决了这个问题,但我很感激你们一起去吧!

相关问题