Python 获取TypeError:object.\uuuu init\uuuuu()不接受任何参数
我用python开发了一个应用程序,遇到了这个问题:Python 获取TypeError:object.\uuuu init\uuuuu()不接受任何参数,python,python-3.x,kivy,Python,Python 3.x,Kivy,我用python开发了一个应用程序,遇到了这个问题: TypeError: object.__init__() takes no parameters 我的文件如下: Main.py: clinicbanner.py: 我认为它可能与数据库或clinicbanner.py文件连接,在超级功能中 我相信你能帮助我 谢谢你的回答和帮助 该错误意味着您正在将参数传递给它不期望的超类。在本例中,可能是cities参数,但我没有仔细观察。不要将参数传递给父级,因为父级与此无关。正如正确说明的那样,您将参
TypeError: object.__init__() takes no parameters
我的文件如下:
Main.py
:
clinicbanner.py
:
我认为它可能与数据库或clinicbanner.py
文件连接,在超级功能中
我相信你能帮助我
谢谢你的回答和帮助 该错误意味着您正在将参数传递给它不期望的超类。在本例中,可能是
cities
参数,但我没有仔细观察。不要将参数传递给父级,因为父级与此无关。正如正确说明的那样,您将参数传递给不存在的类C=ClinicBanner(cities=row[1])
。这是城市的争论。如果您以这种方式使用它,您最好像这样编写init方法:
def __init__(self, cities, **kwargs):
super(ClinicBanner, self).__init__(**kwargs)
centre = FloatLayout() centre_label = Label(text=cities, size_hint=(1, .2), pos_hint={"top": .2, "left": 1})
我将cities作为参数添加到init方法中,并将标签文本更改为cities(我假设cities是str)。这样应该可以工作,但是如果您创建了一个新的实例,您现在必须始终添加cities参数。如果您不想这样做,可以将init方法更改为def\uuuu init\uuuu(self,cities=“”,**kwargs):
添加一个空字符串作为默认值。我希望,它现在对你有用
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
class ClinicBanner(GridLayout):
rows = 1
def __init__(self, **kwargs):
super(ClinicBanner, self).__init__(**kwargs)
centre = FloatLayout()
centre_label = Label(text=kwargs['cities'], size_hint=(1, .2), pos_hint={"top": .2, "left": 1})
centre.add_widget(centre_label)
self.add_widget(centre)
def __init__(self, cities, **kwargs):
super(ClinicBanner, self).__init__(**kwargs)
centre = FloatLayout() centre_label = Label(text=cities, size_hint=(1, .2), pos_hint={"top": .2, "left": 1})