私はPythonとLinuxでRobotフレームワークを使用します。robotframeworkで名前付きパラメータと@keywordを処理する方法
デコレータにオプションの名前付きパラメータb
とc
を使用する方法がわかりません。誰かが説明できますか?
以下の例を参照してください:
@keyword('Starting a "${a}" b "${b}"?? c "${c}"??')
def Start(self, a, b='', c=''):
foo
私はPythonとLinuxでRobotフレームワークを使用します。robotframeworkで名前付きパラメータと@keywordを処理する方法
デコレータにオプションの名前付きパラメータb
とc
を使用する方法がわかりません。誰かが説明できますか?
以下の例を参照してください:
@keyword('Starting a "${a}" b "${b}"?? c "${c}"??')
def Start(self, a, b='', c=''):
foo
私はあなたの質問を理解する方法、デフォルトの引数を持つことになり、埋め込み引数、とキーワードを作成しようとしているが - そしてこれは、doc link, the last paragraph in Basic Syntaxを許可されていません。
あなたができることは、発信者が「デフォルト」の値を渡すために離れることです。例えば:
@keyword('Starting a "${a}" b "${b}" c "${c}"')
def Start(self, a, b, c):
# just work with a, b, c, they *always* have _some_ value when called from RF
foo
# later on, used in Robotframework code:
Starting a "" b "" c ""
この^、変数a
、b
とc
が空の文字列としてPythonの関数に渡されますようにと呼ばれる - 内部このコードを意味し、RFのデフォルト引数文字列型へこの場合の関数は次のようになります。
assert a == '' # will pass when called with no value for a
assert type(b) == str # this will always work, regardless did b (or a, or c) have a value set in the call, or not
これは単なるダミーラインです – ruud
なぜこのインスタンスでデコレータを使用しますか?なぜ 'Start'というキーワードを使わないのですか?(例:' Start arg_a arg_b arg_c')? –