在不生成PyLint警告的情况下,如何比较两个变量的类型?

2024-09-26 22:46:00 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个变量:

a = 123
b = 234

我想比较一下他们的类型。显然,显而易见的方法是:

^{pr2}$

但是,派林给了我一个警告,如果可能的话我想避免:

Using type() instead of isinstance() for a typecheck. (unidiomatic-typecheck)

(我相信这并不是对我使用的特别警告。)

在比较两个变量类型的情况下,我认为isinstance不能使用。在

在不生成PyLint警告的情况下,如何比较两个变量的类型?在


Tags: of方法警告类型fortype情况pylint
3条回答

人们对短绒太感兴趣了。就像PEP 8 style guide。它们是指导方针,你必须用你自己的判断。在

如果你需要知道某事物的类型是否与其他事物的类型相同,那么绝对是直截了当的

type(a) == type(b)

是最像Python的方式。如果可以避免的话,不是惯用的Python会跳出疯狂的圈子去做简单的事情。在

尽管如此,在Python中,您通常不需要知道两个事物的类型是否完全相同。(参见BrenBarn和Chad S的评论)因此,短文可能指向一个更大的“代码气味”,而不仅仅是比较这两种类型的一行代码。在

关掉派林特警报就行了。在

在一条线上,你可以这样做:

types_match = type(a) == type(b) # pylint: disable=unidiomatic-typecheck

https://pylint.readthedocs.io/en/latest/user_guide/message-control.html

如果任何东西中有两个属于exact类型,并且由于某种原因不能使用type(),则{a2}可能是:

a.__class__ is b.__class__

还请注意,此检查对旧样式类的限制。在

相关问题 更多 >

    热门问题