2016-08-08 2 views
0

у меня есть класс фильм следующим образом:kivy: __init __() отсутствует х требуется позиционные аргументы

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 
+0

Вы передаете аргументы в свой '__init__' вызов? Вы, вероятно, нет. Поставляйте их при инициализации класса «Кино». –

+0

Я не создаю никаких объектов типа Movie, поэтому я не знаю, почему интерпретатор Python уже борется, не зная, сколько и сколько аргументов я пройду. – CodeShark

+1

Ну, что-то пытается инициализировать ваш класс 'Movie', что вы используете в интерпретаторе до этой ошибки? –

ответ

-1

Я обнаружил, что киловольт-Ланг-файл был причиной этой ошибки инициализации объекта. Поэтому я не знаю, как это исправить, но я думаю, что это другой вопрос, так как это связано с тем, почему __init__ сейчас называется

Смежные вопросы