Python kivy:\uuuu init\uuuu()缺少x个必需的位置参数
我的班级电影如下:Python kivy:\uuuu init\uuuu()缺少x个必需的位置参数,python,python-3.x,kivy,Python,Python 3.x,Kivy,我的班级电影如下: class Movie(Widget): def __init__(self, title, image, time, description, trailer, fsk, threeD, **kwargs): super(Movie, self).__init__(title, image, time, description, trailer, fsk, threeD, **kwargs) title = StringPropert
class Movie(Widget):
def __init__(self, title, image, time, description, trailer, fsk, threeD, **kwargs):
super(Movie, self).__init__(title, image, time, description, trailer, fsk, threeD, **kwargs)
title = StringProperty()
image = StringProperty()
time = StringProperty()
description = StringProperty()
trailer = StringProperty()
fsk = NumericProperty()
threeD = BooleanProperty()
当我运行脚本时,Python解释器告诉我:
TypeError: __init__() missing 7 required positional arguments: 'title', 'image', 'time', 'description', 'trailer', 'fsk', and 'threeD'
那么我做错了什么?我已经为此挣扎了一段时间
与此问题相关的全部源代码:
class Movie(Widget):
def __init__(self, title, image, time, description, trailer, fsk, threeD, **kwargs):
super(Movie, self).__init__(title, image, time, description, trailer, fsk, threeD, **kwargs)
title = StringProperty()
image = StringProperty()
time = StringProperty()
description = StringProperty()
trailer = StringProperty()
fsk = NumericProperty()
threeD = BooleanProperty()
class MainView(Widget):
def __init__(self, **kwargs):
super(MainView, self).__init__(**kwargs)
movies = ListProperty()
# movies = self.getMovies()
# for movie in movies:
# self.add_widget(movie)
def getMovies(self, url="http://.../"):
html = lxml.html.parse(url)
titles = html.xpath("//h5")
times = html.xpath("//td[@class='pday ptoday']/span/a")
trailers = html.xpath("//a[@data-modal-trailer-url]/@data-modal-trailer-url")
fsks = html.xpath("//tr[@data-fsk]/@data-fsk")
movies = list()
# for i in range(0, len(titles)):
# movie = Movie(titles[i].text, "images[i]", times[i].text, "", "https:" + trailers[i][:-11], fsks[i], "no")
# movies.append(movie)
return movies
我已经发现kv lang文件是这个对象初始化错误的原因。因此,我不知道如何修复它,但我认为这是另一个问题,因为这是关于为什么调用
\uuuuu init\uuuu
的问题。您是否为\uuuuu init\uuu
调用提供参数?你可能不是。在初始化Movie
类时提供它们。我没有创建任何类型为Movie的对象,因此我不知道为什么Python解释器在不知道我将传递什么和多少参数的情况下已经在挣扎。好吧,有东西正在试图初始化你的Movie
类,在此错误之前,您在解释器中运行的是什么?@Jim我同意产生错误的执行行可能不包括在问题中。您是否尝试过从类访问这些方法?当您执行类似以下操作时,这也是一个常见错误:title=Movie.getTitle()
,即,在没有实例化类实例的情况下调用方法nope,在任何地方都不会调用来自类Movie的方法。我已经把那些台词注释掉了。这可能是kivy遗传的吗?