首页
学习
活动
专区
工具
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会抛出错误。

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

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

相关·内容

pythonargparse模块

:$ 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.7K30

讲解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。

1.5K20

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

74820

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()函数来将传递进来属性参数添加到对应属性上。

64060

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 却总能时不时让我意外一下,这是什么情况?

15320

一日一技: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小技巧:​args 和 kwargs 乐趣

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

52410

Python入门学习(二)

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

1.4K81

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):

10110

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:

92310

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 年多,但是它一些功能还没有被充分利用。本系列下一篇文章,我将会写另外三个。

44130

PythonPython日志无延迟实

我在用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。

41710

Python中元类概念

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

17700
领券