首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TypeError:__init__()在python的argparser中获得了意外的关键字参数'choices‘

TypeError:init()在python的argparser中获得了意外的关键字参数'choices'

这个错误是由于在使用argparser模块时,传递了一个名为'choices'的意外关键字参数导致的。argparser是Python标准库中用于解析命令行参数的模块,它允许我们定义命令行接口,并解析用户输入的参数。

在argparser中,'choices'是一个可选参数,用于指定参数的合法取值范围。当用户输入的参数不在指定的取值范围内时,argparser会抛出这个错误。

要解决这个问题,可以检查代码中使用argparser的部分,确保没有意外地传递了'choices'参数。如果确实需要使用'choices'参数,可以检查传递的取值范围是否正确,并根据需要进行修正。

以下是一个示例代码,演示了如何使用argparser并避免这个错误:

代码语言:txt
复制
import argparse

# 创建一个ArgumentParser对象
parser = argparse.ArgumentParser()

# 添加一个参数,并指定合法的取值范围
parser.add_argument('--color', choices=['red', 'green', 'blue'], help='Specify a color')

# 解析命令行参数
args = parser.parse_args()

# 使用解析后的参数
print(args.color)

在上述示例中,我们创建了一个名为'--color'的参数,并指定了合法的取值范围为['red', 'green', 'blue']。当用户输入的参数不在这个范围内时,argparser会抛出错误。

希望这个解答对你有帮助!如果你对云计算或其他相关话题有更多问题,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python的argparse模块

:$ python print_name.py --name WangHello Wang上面的代码段中,我们显示引入了argparser包,然后通过argparser.ArgumentParser函数生成...argparser对象,其中这个函数的description函数表示在命令行显示帮助信息的时候,这个程序的描述信息。...整个流程就是这样,下面我们详细讲解add_argument函数的一些最常用的参数,使得你看完这个教程之后,能完成科研和工作中的大部分命令解析任务。...2. default:没有设置值情况下的默认参数如同上例中展示的,default表示命令行没有设置该参数的时候,程序中用什么值来代替。...the architecture of CNN, at this time we only support alexnet and vgg.7. dest:设置参数在代码中的变量名

1.2K20

在python中构造时间戳参数的方法

目的&思路 本次要构造的时间戳,主要有2个用途: headers中需要传当前时间对应的13位(毫秒级)时间戳 查询获取某一时间段内的数据(如30天前~当前时间) 接下来要做的工作: 获取当前日期,如2021...-12-16,定为结束时间 设置时间偏移量,获取30天前对应的日期,定为开始时间 将开始时间与结束时间转换为时间戳 2....一个简单易懂的例子 按照上面的思路,时间戳参数创建过程如下 `import datetime today = datetime.datetime.now() # 获取今天时间 print("当前日期是...:50:58.543452,对应的时间戳:1639644658543 找一个时间戳转换网站,看看上述生成的开始日期的时间戳是否与原本日期对应 可以看出来,大致是能对应上的(网上很多人使用round()方法进行了四舍五入...,因为我对精度没那么高要求,所以直接取整了) 需要注意的是:timestamp() 方法默认生成的是10位(秒级)时间戳,如果要转换为13位(毫秒级)的话,把结果*1000才行 补充timedelta的几个参数

2.8K30
  • 讲解TypeError: init() got an unexpected keyword argument "serialized_options &#

    讲解TypeError: __init__() got an unexpected keyword argument 'serialized_options'在使用Python进行编程开发过程中,我们可能会遇到一些错误...错误背景当我们在某些Python库或框架中使用类的实例化时,我们可能会遇到TypeError: __init__() got an unexpected keyword argument 'serialized_options...拼写错误:可能是因为在实例化时,关键字参数的拼写错误或大小写错误导致的。...查阅相关文档以获取正确的初始化参数。检查关键字参数拼写:仔细检查代码中的关键字参数,确保其拼写和大小写与文档中的要求一致。...在模型的初始化方法中,我们接受了一个hidden_units的列表参数,并误传了一个不支持的关键字参数serialized_options。

    2.7K20

    python测试开发django-rest-framework-91.ChoiceField选项字段校验

    前言 当我们需要校验选项字段的时候,需用到 ChoiceField 来校验 选项 在 model 模型里面有个字段是选项字段, goods_status 可以有2种状态,0是下架,1是出售中,默认 class...我们想让它显示 下架 和出售中,这样看起来更友好 序列化 在序列化类里面使用get__display的方法,该方法获得choice字段对应的数据 下架和出售中....这里涉及到一个很有用的实例方法:get__display 对于模型中含有choices参数的字段, 是字段的名字, get_FOO_display()...\lib\site-packages\django\db\models\base.py", line 495, in __init__ raise TypeError("'%s' is an invalid...) 于是可以用到ChoiceField, 必须传choices 参数选项 # 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang

    1.4K20

    Python解析命令行读取参数 — argparse模块

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包使得这一工作变得简单而规范。...比如如下名为test.py的脚本: import sys print "Input argument is %s" %(sys.argv) 在shell脚本中运行python test.py help可以得到...1) 一般形式 但是大多数情况下,脚本很可能需要多个参数,而且每次参数的类型用处各不相同,那么这个时候在参数前添加标签表明参数的类型和用途便十分有用,而利用argparse模块可以很方便得实现这一目的...6)候选参数选择 表示该参数能接受的值只能来自某几个值候选值中,除此以外会报错,用choices参数即可。...比如: parser.add_argument('filename', choices=['test1.txt', 'text2.txt']) 参考:https://mkaz.tech/python-argparse-cookbook.html

    77820

    python学习笔记6.7-简化数据结构的初始化过程

    self.radius = radius 每一个类写一个数据结构这样比较麻烦,可以利用其它有效的方法去避免这种麻烦,加快编写代码的速度,例如,将初始化数据结构的步骤归纳到一个单独的init()函数中,并将其定义在公共的基类中...可以对上面的方法进行完善,对其添加对关键字参数的支持,这样表达更清晰,更方便编程,最好的选择就是对关键字参数做映射,这样它们就只能对应于定义在-fields中的属性名: class Structure:...Point(Structure): _fields = ['x','y'] p = Point(x=4,y=5) print(p.x,p.y) 打印输出: ACER 50 99 4 5 还可以利用关键字参数来给类添加额外的属性...,而这些额外的属性是没有定义在_fields中的: class Structure: _fields=[] def __init__(self,*args,**kwargs):...:我们都是使用setattr()函数来将传递进来的属性参数添加到对应的属性上。

    67060

    一日一技:在Python中为别人的函数设定默认参数

    在使用一些科学计算的库时,我们会发现他们动不动就十几二十个参数。这些参数太多了,以至于有一些参数我们甚至根本不会修改,但是又不得不添加上去。...if f: s = s ** 2 if not g: return s else: return s / 2 calc(1, 2, 3, 4) 在调用的时候...现在问题来了,你调用的是别人已经定义好的函数,假设它有7个参数,但是你只需要修改第3,4个参数。而第一个参数始终固定是1,第二个参数始终是2,此时有没有什么简单的写法呢?...这个时候就可以使用Python的 partial函数了。...例如: simple_calc = partial(calc, 1, f='test', g=True) 此时就指定了第1个参数为1,名为f的参数的值为test,名为g的参数的值为True。

    1.1K20

    从 Python 的魔法方法说开去

    一天我在群里看到这样一个有意思的 Python 现象: >>> import os >>> r=os.popen('ls') >>> r....答案是肯定的,查看 Python 源码中next()内建函数的实现,可以看到下面的代码: #define PyIter_Check(obj) \ (Py_TYPE(obj)->tp_iternext...下面这段是额外的思考,可能比较绕: 再回头去看最开始的例子,这个问题之所以奇怪,是因为它用了__getattr__()让实例获得了并不存在于类中的属性。也就是说,原来的类并没有获得这些额外的属性。...而魔法行为的判断是基于类中是否有这个魔法方法。这两件事合起来看,那我是不是可以通过元类中的__getattr__()方法让类获得本不属于它的魔法方法,继而使得实例具有某些行为呢?...我用 Python 的时间不可谓不短,也自认对 Python 的语言特性比较了解了,但 Python 却总能时不时让我意外一下,这是什么情况?

    16720

    Python小技巧:​args 和 kwargs 的乐趣

    要不然我们相处的很好,我猜想这就是学术界编程最终对人所带来的影响吧。 现在args和 kwargs参数仍然是 Python 中非常有用的特性,而且理解它们的威力将使您成为更有效的开发人员。....:         print(kwargs) 上面的函数需要至少一个叫做“必须的”参数,但是它也能接受额外的位置参数和关键字参数。...当我们调用带有参数的不同组合的函数时,你会看到在args和kwargs内部参数。 Python如何收集它们,根据它们是否为位置参数或者关键字参数。...## 转发可选或者关键字参数 有可能从一个函数到另一个函数传递可选或者关键字参数。 当你调用要转发参数的函数时,你可以通过使用解包参数操作符*和**。在你传递之前这也给你一个机会修改参数。...例如,您可以使用它来扩展父类的行为,而不必在子类中复制其构造函数的完整签名。

    54710

    Python入门学习(二)

    之所以要添加括号,是因为dict函数的参数只有一个 通过对关键字赋值创建一个字典,关键字必须是一个字符串类型并且不能加引号,因为程序会默认为其加上一个引号,例: ?...6 else语句 在Python中else不仅可以和if语句搭配,实现如果条件为真则如何,否则则如何的功能。...8.1 类方法的self参数含义 在Python中类的方法都要有self参数,实质为对类的实例化对象的绑定从而使得在类的实例化对象调用方法时能够确认出是对哪个对象进行操作,与C里面的this指针是一样的...在python中通过class类来定义一个类,类定义好后就是一个类对象,而通过类对象实例化之后的对象就称之为类实例化对象。...如果第一个参数不熟对象,则永远返回False。如果第二个参数不是类或者由类对象组成的元组,会抛出一个TypeError异常。

    1.5K81

    10 个 Python 秘诀将颠覆你的编码方式

    然而,只要持之以恒、循序渐进地学习,Python的门径终将为你打开。我就是靠着坚持不懈,不断吸收新知识,最终获得了第一份编程工作。...从那时起,我在每一份工作中都能"取之不尽、用之不竭",汲取到各种实用技巧和窍门。今天,就让我分享其中一些精华,希望能为你的Python编程之路提供启迪。...秘诀 1:zip函数 zip函数堪称Python中的利器。它能将多个可迭代对象并行合并为一个可迭代的元组序列,大大简化了对多个序列的遍历操作。...# 列出名字 names = ["Alice", "Bob", "Charlie"] # 从列表中手动传递参数 # 从列表中手动传递参数 greet(names[0], names[1], names...(person) 在使用 dataclasses 之前,我的代码中充斥着大量的模板: class Person: def __init__(self, name, age, city):

    14211

    Python3 错误和异常

    通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。...在python中我们可以通过try-except语句来捕捉异常,语法错误的话开发工具都会有提示的。...异常处理 在python中通过try-except语句来处理异常,例如将可能会出现不能被0整除异常的代码写在try代码块里,try代码块里的代码执行过程中出现异常后,就会执行except代码块里的代码,...也可以使用此关键字在代码中抛出特定的异常,如果这个关键字写在except里,并且没有指定要抛出的异常,那么这个raise 就会抛出这个陷阱里的异常,代码示例: try:     num=10/0 except...str__(self):   # 类中的每个方法都需要有一个self参数,通过这个参数来获取类属性的值             return repr(self.value) >>> try:

    94010

    3 个值得使用的首次亮相在 Python 3.0 中的特性

    3 个首次亮相在 Python 3.0 中的值得使用的特性 ---- 探索一些未被充分利用但仍然有用的 Python 特性。 这是 Python 3.x 首发特性系列文章的第一篇。...仅限关键字参数 Python 3.0 首次引入了仅限关键字参数参数的概念。在这之前,不可能指定一个只通过关键字传递某些参数的 API。这在有许多参数,其中一些参数可能是可选的函数中很有用。...在 3.0 之前,Python 的标准答案是: class _Accumulator: def __init__(self): self....: 1 1 5 6 3 9 在 Python 3.x 中,nonlocal 关键字可以用少得多的代码实现同样的行为。...Python 3.0 和它的后期版本已经推出了 12 年多,但是它的一些功能还没有被充分利用。在本系列的下一篇文章中,我将会写另外三个。

    46130

    【Python】Python日志无延迟实

    我在用python生成日志时,发现无论怎么flush(),文件内容总是不能实时写入,导致程序意外中断时一无所获。...以下是查到的解决方案(亲测可行): open 函数中有一个bufferin的参数,默认是-1,如果设置为0是,就是无缓冲模式。...在字符串前加b,转换成二进制 如果没用二进制打开文件会提示ValueEorror: 没把字符串转成二进制会提示:TypeError: a bytes-like object is required,...not ‘str’ 测试: class Logger(object): def __init__(self, log_path="default.log"): self.terminal...但是encode返回的是bytes型的数据,不可以和str相加,需要将‘\n’前加b。 (2)terminal.write函数参数需要为str类型,转化为str。

    43210

    Python中元类的概念

    元类的概念 在面向对象编程中,元类是一种特殊的类,用于创建其他类。简单来说,元类是用来定义类的类。在Python中,一切皆对象,包括类本身。因此,我们可以使用元类来定制类的创建过程,控制类的行为。...在Python中,元类是通过定义__metaclass__属性来指定的,默认值为type。...Python的接口 与Java等语言不同,Python并没有像Java那样严格定义接口的概念。在Python中,接口的概念是通过约定俗成的方式来实现的。...在Python中,我们通常使用抽象基类(Abstract Base Class)来实现接口的功能。抽象基类是一种特殊的类,它不能被实例化,只能被继承。...元类和Java的接口在以下几个方面有异同: 定义方式:元类是通过定义特殊的类来创建其他类,而Java的接口是通过关键字interface来定义的。

    20200
    领券