Другой вариант - использовать пакет Click для создания параметров командной строки.Я лично нахожу это более интуитивным.
import click
@click.command()
@click.option('-n', '--noutput')
def driver(noutput):
print(noutput)
def scramble_words(noutput):
"""
Shuffle words in new_list
Print reordered words by newline
"""
new_list=['a', 'b', 'c', 'd', 'e']
random.shuffle(new_list)
print( )
print("\n\n".join(new_list[:--noutput]))
if __name__ == "__main__":
driver()
Если вы хотите придерживаться argparse, вот как вы можете передать аргумент своей функции.Я сделал некоторые предположения о том, как вы можете использовать код.
import sys
import argparse
import random
def get_args(argv = None):
parser = argparse.ArgumentParser()
parser.add_argument(
'-n',
'--noutput',
default = 15,
type = int,
help = 'Number of lines in output'
)
return parser.parse_args()
def scramble_words(noutput):
"""
Shuffle words in new_list
Print reordered words by newline
"""
new_list=['a', 'b', 'c', 'd', 'e']
random.shuffle(new_list)
print( )
print("\n\n".join(new_list[:--noutput]))
if __name__ == "__main__":
args = get_args(sys.argv)
scramble_words(args.noutput)