我一直在阅读很多关于课程和实例的文章和网站。但没有人能够为我提供这个问题的明确答案。如何将变量从一个文件传递到另一个文件中嵌套在类中的函数?
在我的数据库文件中,我从给定的行中获取了各个值。我需要将这些变量传递给我的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
答案 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的努力,我可能已经更好地解决了这个问题,但我很感激你们一起去吧!