私はint
とstr
の両方の引数を受け入れるclickコマンドを書いています。この例のように関数内で渡された引数の型を調べる必要があります:Python/Clickで渡されたCLIの引数型をチェックする方法
import click
@click.command()
@click.argument('num')
def command(num):
if type(num) is int:
click.echo("integer")
elif type(num) is str:
click.echo("string")
if __name__ == '__main__':
command()
この例では、引数の型が常にUnicodeであるため、この例は機能しません。
私は、この、このコマンドの戻りを実行するようにする方法を探しています$ python script.py text
<type 'unicode'>
$ python script.py 123
<type 'unicode'>
:
$ python script.py text
<type 'str'>
$ python script.py 123
<type 'int'>
私は最初の例がうまくいくと思います。整数がnumとして使用されるようにキャストされます。 – MMSs
私の答えが更新されました。 isinstance()を使用し、type()は使用しないでください。 – alexisdevarennes