具有在Robot Framework中导入的python类,如下所示:
蟒蛇: MyClass.py
class MyClass:
def __new__(cls, a, b):
# implementation here
机器人框架: MyTest.robot
*** Settings ***
Library MyClass.py a=1 b=2
得到错误 Error in file 'MyTest.robot': Test Library 'MyClass' expected 0 arguments, got 2.
我知道错误是因为MyClass尚未__init__定义(如果已定义,则不会导入错误)。
我的问题是:如何导入MyClass.py已__new__定义但未定义的__init__?
(没有详细介绍为什么我有__new__和没有的细节__init__)
根据python文档,new__将接收到的参数传递给__init。由于您未创建__init__接受参数的,因此您将收到错误消息。
如果__new__()返回cls的实例,则新实例的__init__()方法将像一样被调用__init__(self[, ...]),其中self新实例是,其余参数与传递给的参数相同__new__()。
如果您不希望__init__被调用,则可能会从以下问题获得帮助:可以防止调用init吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。