Ich habe eine Bibliothek als eine Klasse in einem Modul implementiert:Robot Framework: define verfügbaren Schlüsselwörter in einer Klasse
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')
Ich kann diese Bibliothek ohne Problem mit Library MyLib
importieren. Dies scheint nicht intuitiv zu sein, aber ich möchte verhindern, dass MyLib Parent Keyword
bereitstellt. Wenn ein Benutzer Parent Keyword
möchte, möchte ich, dass er manuell mit Library ParentLib
importiert werden muss. Ist das möglich, oder muss ich die Art und Weise, wie meine Bibliothek implementiert wird, neu organisieren?
parent_keyword wird von allen ParentLib-Unterklassen geerbt. Wenn Sie es verhindern möchten, unterlassen Sie es nicht oder überschreiben Eltern-Schlüsselwort in Ihrer Unterklasse –
@Apero ich weiß. Ich frage mich, ob robot eine Methode zur Verfügung stellt, um zu definieren, welche Klassenmethode Schlüsselwörter sind und welche nicht, ähnlich der Verwendung von '__all__', wenn sie ohne Klasse definiert werden. (Ich weiß, dass '__all__' in Python-Funktionalität für Module eingebaut ist.) – ewok
__alll__ kann hier nicht helfen. parent_keyword ist eine Methode einer Klasse. Wenn also die Klasse importiert werden kann, kommen ihre Methoden hinzu. –