gpt4 book ai didi

python - robotsframework:定义类中可用的关键字

转载 作者:行者123 更新时间:2023-11-30 22:57:52 25 4
gpt4 key购买 nike

我有一个库作为模块中的类实现:

MyLib.py

class MyLib(ParentLib):
def __init__(self):
#do stuff
pass

def keyword(self, arg1):
robot.api.logger.console('keyword')

ParentLib.py

class ParentLib:
def __init__(self):
pass

def parent_keyword(self, arg):
robot.api.logger.console('parent keyword')

我可以使用 Library MyLib 毫无问题地导入此库。这可能看起来违反直觉,但我想阻止 MyLib 提供 Parent Keyword。即,如果用户想要 Parent Keyword,我希望他们被迫使用 Library ParentLib 手动导入它。这是可能的,还是我需要重新组织我的库的实现方式?

最佳答案

您可以定义方法get_keyword_names来显式定义哪些关键字要暴露给测试:

class MyLib(ParentLib):
...
def get_keyword_names(self):
return ["keyword"]

机器人框架用户指南将此称为 hybrid library

我个人反对这一点。正如您在问题中所说,这是违反直觉的。

如果您希望关键字库共享一些公共(public)代码,那么让 MyLibParentLib 都从一个公共(public)基类继承,可能比单独继承一个更好同时隐藏继承的功能。如果要隐藏这些函数,为什么要继承它?

关于python - robotsframework:定义类中可用的关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36434567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com