我一直在玩Click package,但我不能让下面的代码片段正常工作。在
import numpy as np
import click
@click.command()
@click.option('--get_print', default = True)
class CustomClass():
def __init__(s, get_print):
s.data = np.random.normal(0, 1, 10)
s.get_print = get_print
if s.get_print:
print("get_print =", s.get_print)
def print_mean(s):
print("Printing mean:")
mean_ = np.mean(s.data)
if s.get_print:
print(mean_)
if __name__ == '__main__':
CustomClass().print_mean()
似乎从未调用print_mean
函数。如果我注释掉@Click decorator,并手动设置get_print=True
,则调用print_mean
方法就可以了。在
我怀疑@Click以某种方式设置了__main__
,所以当我这样做时,它只是再次调用Click,但也许我错了?在
在这两种情况下,当您希望__init__
方法继承所有选项,if __name__ == '__main__'
能够实际调用类中的函数时,使用Click的正确方式是什么呢?在
这只是为了说明我在评论中的意思。用
click
函数装饰一个函数,并让该函数实例化类并执行所需的任何成员函数。点击文档建议如下:…并且您可能希望
^{pr2}$get_print
作为带有默认False
的标志:相关问题 更多 >
编程相关推荐