Próbuję użyć pakietu python click
, aby przekazać argument wiersza poleceń do funkcji. Przykład z oficjalnej dokumentacji działa tak, jak wyjaśniono. Ale nigdzie w dokumentacji nie wspomniano, jak zwrócić wartość z powrotem. Żadna z funkcji w dokumentacji nie zwraca wartości, więc nie rozumiem, jak to zrobić.Jak zwrócić wartość, gdy @ click.option jest używane do przekazania argumentu wiersza poleceń do funkcji?
Biorąc przykład w dokumentacji:
import click
@click.command()
@click.option('--count', default=3, help='Number of greetings.')
def hello(count):
"""Simple program that greets NAME for a total of COUNT times."""
for x in range(count):
click.echo('Hello')
if __name__ == '__main__':
hello()
Co chcę zrobić:
import click
@click.command()
@click.option('--count', default=3, help='Number of greetings.')
def hello(count):
"""Simple program that greets NAME for a total of COUNT times."""
for x in range(count):
click.echo('Hello')
return "hello hi"
if __name__ == '__main__':
print(hello())
"cześć cześć" nie jest zwracana jako wyjście na konsoli. Czy ktoś może mi powiedzieć, jak to osiągnąć?
'argparse' skały, ale' click' dodaje wiele funkcjonalności na górze to, że w wielu sprawy przyniosłyby więcej kodu niż twoja rzeczywista logika. Zobacz [Dlaczego kliknij?] (Http://click.pocoo.org/3/why/) w dokumentach. Rozsądnie jest używać go zgodnie z jego przeznaczeniem. – abarnert
@abarnert: W mojej odpowiedzi zredagowałem działającą wersję 'argparse'. Zajmuje jedną dodatkową linię kodu w porównaniu do oryginału z "kliknięciem". –
Po przeczytaniu linku, który ci dałem, punkt "kliknięcia" nie jest przeznaczony dla prostych programów, ale dla takich rzeczy jak komponowanie skomplikowanych programów CLI. Powiedzenie "zapisuje tylko jedną linię dla tego programu" jest jak powiedzenie "C jest tak samo dobre jak Python, ponieważ jest tylko o 1 linię dłuższe dla Hello, World". – abarnert