python数据类型异常_在平等比较不同的数据类型时,我可以使Python抛出异常吗?...

不,你不能.这些项目不相等,那里没有错误.

一般来说,强制您的代码只接受特定类型是非常规的.如果你想创建一个int的子类,并让它在int工作的地方工作怎么办? Python布尔类型是int的子类,例如(True == 1,False == 0).

如果您必须有例外,您可以执行以下两项操作之一:

>测试其类型的相等性并自己提出异常:

if not isinstance(a, type(b)) and not isinstance(b, type(a)):

raise TypeError('Not the same type')

if a == b:

# ...

这个例子允许a或b成为另一种类型的子类,你需要根据需要缩小它(类型(a)是类型(b)是超严格的).

>尝试订购类型:

if not a < b and not a > b:

# ...

在Python 3中,在将数字类型与序列类型(例如字符串)进行比较时会抛出异常.比较在Python 2中成功.

Python 3演示:

>>> a, b = 1, '1'

>>> not a < b and not a > b

Traceback (most recent call last):

File "", line 1, in

TypeError: unorderable types: int() < str()

>>> a, b = 1, 1

>>> not a < b and not a > b

True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值