检查变量的数据类型,否则引发错误[重复]
Posted
技术标签:
【中文标题】检查变量的数据类型,否则引发错误[重复]【英文标题】:Checking for datatype of variable, else raise error [duplicate] 【发布时间】:2021-12-29 02:43:03 【问题描述】:我有这个代码来创建一个插入到 python 元组中的函数:
def insert_t(t, i, v):
l = list(t)
l.insert(i, v)
tu = tuple(l)
return tu
代码有效,但有一个问题。将 t 传递给任何序列类型变量都可以。但我希望 t 只是一个元组,而不是列表或字符串。我的意思见下文:
x = 'Hello'
insert_t(x, 2, 4)
该代码适用于 x 是字符串时,但是,这破坏了代码仅附加到元组的目的。如果参数 t 不是元组,我希望它引发 TypeError
。
上网查了一下,发现try...except
存在,可以报需要的错误。但是,我不知道如何实现它,因为如您所见,我以前从未使用过try...except
。如何实现?
【问题讨论】:
try... except
用于处理错误。要引发错误,请使用...raise
。这就是为什么它被称为。我不知道你在哪里“上网”,但所有这些都以教程的形式精心解释,in the official documentation。
【参考方案1】:
在最基本的情况下,您要求:
if not isinstance(t, tuple):
raise TypeError
当您收到 TypeError 时,您希望发生什么?
回答下面提出的问题。在你的代码的其他地方,你会写:
try:
...
code that might generate a TypeError, possibly right here
or possibly in some function that is called.
...
except TypeError:
print(...)
您的try/except
应该是您可以实际处理错误并明智地继续的地方。
【讨论】:
我只想打印一条消息,说“无效数据类型 - 预期元组,得到”字符串或列表,具体取决于传递的 t 值以上是关于检查变量的数据类型,否则引发错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
“Emgu.CV.CvInvoke”的类型初始值设定项引发异常。
在 python 中使用 cppyy 时,指针变量引发错误为未知类型
Azure Databricks 将 JSON 数据写入 Parquet 文件引发错误:TypeError:无法推断类型的架构