检查变量的数据类型,否则引发错误[重复]

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 语言特性

在 python 中使用 cppyy 时,指针变量引发错误为未知类型

第九天

Azure Databricks 将 JSON 数据写入 Parquet 文件引发错误:TypeError:无法推断类型的架构