我想用 Python 的Click 库解析一些命令行参数,并将提供的值保存在一个对象中。
我的第一个猜测是这样做:
import click
class Configuration(object):
def __init__(self):
# configuration variables
self.MyOption = None
# method call
self.parseCommandlineArguments()
@click.command()
@click.option('--myoption', type=click.INT, default=5)
def parseCommandlineArguments(self, myoption):
# save option's value in the object
self.MyOption = myoption
# create an instance
configuration = Configuration()
print(configuration.MyOption)
但是,这不起作用,而是我得到:
TypeError: parseCommandlineArguments() takes exactly 2 arguments (1 given)
显然,传递self
给装饰函数不是正确的方法。如果我self
从方法参数中删除,那么我可以这样做print(myoption)
,它将打印在屏幕上,但我的类5
的任何实例都不会知道该值。Configuration()
处理这个问题的正确方法是什么?我认为它与Click 中的上下文处理有关,但我无法根据提供的示例使其正常工作。