如何在python中单击仅传递一个参数?

时间:2018-12-02 23:55:10

标签: python arguments

我是click package的新手。我有一个带有两个参数的函数,我只想使用click传递其中一个参数,则i传递给if语句内部。

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)

@click.command()
@click.argument('filename')
def plot_graph(i, filename):
    ...

if __name__ == '__main__':
    graph_animated = animation.FuncAnimation(fig, plot_graph, interval=1000)

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将相关代码包装在“命令”函数中,并在filename变量上使用闭包:

import click
import matplotlib.animation as animation
import matplotlib.pyplot as plt


@click.command()
@click.argument('filename')
def main(filename):
    fig = plt.figure()
    ax1 = fig.add_subplot(1,1,1)

    def plot_graph(i):
        # Closure over `filename` here.
        # Alternatively you can use additional kwarg `filename=filename`.

    graph_animated = animation.FuncAnimation(fig, plot_graph, interval=1000)
    plt.show()


if __name__ == '__main__':
    main()