如何在不收到TypeError: myMasterFunction() missing 1 required positional argument: 'master'
示例程序:
from tkinter import *
class printing():
def printSentence(self):
#Call print_name function
myMasterClass().print_name()
print("Tom")
class myMasterClass():
def __init__(self,master):
super(myMasterClass,self).__init__(master)
def print_name(self):
print("My name is...")
printing().printSentence()
root = Tk()
myGUI = myMasterClass(root)
root.mainloop()
非常感谢。 P.S我是OOP的新手,所以我不确定这是否是聚合,但我不想做继承。
答案 0 :(得分:0)
我不知道您要实现的目标,但是当您创建print
类时,您将覆盖原来的print
功能在命名空间中。因为您的打印类没有采用任何参数(未提供__init__
),调用print("Tom")
将引发错误。这是第一个。另一个是在呼叫super(myMasterClass,self).__init__(master)
。正如您所看到的,您没有在此类中使用任何继承,默认情况下,该继承将从object
类继承。并且对象类也没有采用任何参数,因此尝试提供master
参数将导致错误。总的来说,我不知道你想在这里实现什么,但我认为如果你想在默认的print
函数中添加一些额外的东西,那么使用装饰器而不是类似的东西要容易得多