我只是想创建一个代码如何使用 @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
说了些什么。
答案 0 :(得分:1)
object.__new__
不接受任何参数。 super
中的__new__
来电将失败:
return super(Person, cls).__new__(cls, name, age)
因为您还将name
和age
传递给object.__new__
。
您不需要将这些传递到object
;要么将__new__
定义全部放在一起,要么不要将任何参数传递给它:
return super(Person, cls).__new__(cls)
无论哪种方式,我都没有理由在这里使用__new__
,但我猜测你正在尝试。如果您是,请注意您也可以将Person
和cls
放入super
并使用它的零参数形式,即:
return super().__new__(cls)