TypeError对象不带参数

时间:2017-01-12 06:35:00

标签: python python-3.x class

我只是想创建一个代码如何使用 @And("^Input Height in add report$") public void Input_Height_in_add_report(DataTable newHeight) throws Throwable { if(driver.findElement(By.xpath("//label//span[contains(text(),'Height')]")).isDisplayed()){ Thread.sleep(2000); List<List<String>> data = newHeight.raw(); driver.findElement(By.xpath("/html/body/div[1]/div/div/div[2]/form/div[7]/div[1]/div/div/input")).sendKeys(data.get(1).get(1)); } else{ } }super。这是代码:

__new__

Python提出了一个class Person(object): def __new__(cls, name, age): print('__new__called') return super(Person, cls).__new__(cls, name, age) def __init__(self, name, age): print('__init__called') self.name = name self.age = age def __str__(self): return('<Person:%s(%s)>'%(self.name, self.age)) if __name__ == '__main__': piglei = Person("piglei", 24) print(piglei) ,并对第4行TypeError说了些什么。

1 个答案:

答案 0 :(得分:1)

object.__new__不接受任何参数。 super中的__new__来电将失败:

return super(Person, cls).__new__(cls, name, age)

因为您还将nameage传递给object.__new__

您不需要将这些传递到object;要么将__new__定义全部放在一起,要么不要将任何参数传递给它:

return super(Person, cls).__new__(cls)

无论哪种方式,我都没有理由在这里使用__new__,但我猜测你正在尝试。如果您是,请注意您也可以将Personcls放入super并使用它的零参数形式,即:

return super().__new__(cls)