Python在做条件比较的时候如何让其左右类型不同的时候报错或提示?

例如

mstr = '1'
mint = 1
if mstr == mint:
    print 'same'

可是这样是没有意义的,我想要的是

mstr = '1'
mint = 1
if int(mstr) == mint:
    print 'same'

但是我事先并不知道mstr是一个字符串,如何在不做实现类型判断的条件下,比较的时候报错或者提示呢?

阅读 1.9k
1 个回答
if int(mstr) == mint:
    print 'same'

你自己已经写出来了啊, mstr不知道类型是什么,如果不能转换成int,会报ValueError,如果不想报异常

try:
    if int(mstr) == mint:
        print 'same'
except ValueError:
    print mstr

还是你的意思是想先判断类型?

if type(mstr) == type(mint):
    if mstr == mint:
        print 'same'
    else:
        print 'value not same'
else:
    print 'type not same'

还是你既不想先判断类型,还想报错,函数重载?

class myint(int):
    def __eq__(self, other):
        if isinstance(other, int):
            return int(self) == other
        else:
            print 'type not same'
            return False

mint = myint(1)
1 == mint
mstr == mint
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题