python-3.x - Python OOP 继承
问题描述
我正在尝试在我的学校工作中实现继承,但它不起作用。这是我编写的代码,这是它的基本版本:
from tkinter import *
class First(Frame):
def __init__(self,master):
super(First,self).__init__(master)
self._x = int(input("Int: "))
class Second(Frame):
def __init__(self,master):
super(Second,self).__init__(master)
self._y = self._x + 9
class Third(First,Second):
def __init__(self,master):
super(Third,self).__init__(master)
print(self._y)
root = Tk()
root.configure(background='light grey')
myGUI = First(root)
Third()
root.mainloop()
我试图让它让用户输入一个 int 然后 +9 然后使用继承打印它。但我不断收到错误:
TypeError: __init__() missing 1 required positional argument: 'master'
我的代码可能看起来很乱,但我对 python 很陌生,所以很抱歉,谢谢你的帮助。
解决方案
就像错误说的那样,Third
需要一个名为master
. 当你这样做时,你没有传递任何参数Third()
您需要将其称为Third(root)
.
推荐阅读
- azure-virtual-machine - 如何关闭虚拟机以免产生费用,但要像在 VMware 中那样在磁盘上关闭它?
- pointers - 当我们从程序堆栈中压入和弹出时,为什么我们将堆栈指针递增/递减“4”?
- input - Godot:如何在 _process 函数中获得 InputEventMouseMotion?
- swift - 无法获取用户 - 使用 firebase 时出错,无法获取
- postgresql - Spring Boot 给出 URL 必须以 'jdbc' 开头的错误
- r - 在 lappy(或循环)中创建向量
- ios - 当返回到导航堆栈中的前一个 ViewController 时,UI 会冻结一秒钟
- python-3.x - 从字符串中添加数字
- amazon-systems-manager - 使用 Amazon Systems Manager 如何安装适用于 Linux 的 AWS CLI
- database - Firebase - 将许多应用程序添加到一个项目中