python中if int(check)==1_如何在Python中键入check变量?

是的,正如埃文所说,不要打支票。试着使用这个值:def myintfunction(value):

""" Please pass an integer """

return 2 + value

那没有打字机。好多了!让我们看看当我尝试时会发生什么:>>> myintfunction(5)

7

这很有效,因为它是一个整数。嗯。让我们试试文字。>>> myintfunction('text')

Traceback (most recent call last):

File "", line 1, in

File "", line 3, in myintfunction

TypeError: unsupported operand type(s) for +: 'int' and 'str'

它显示了一个错误,TypeError,这就是它应该做的。如果打电话的人想知道,那是可能的。

如果你打字检查你会怎么做?显示错误对吗?所以你不必打字检查,因为错误已经自动出现了。

另外,由于您没有进行类型检查,因此可以使用其他类型的功能:

浮动:>>> print myintfunction(2.2)

4.2

复数:>>> print myintfunction(5j)

(2+5j)

小数:>>> import decimal

>>> myintfunction(decimal.Decimal('15'))

Decimal("17")

甚至完全可以任意添加数字的对象!>>> class MyAdderClass(object):

... def __radd__(self, value):

... print 'got some value: ', value

... return 25

...

>>> m = MyAdderClass()

>>> print myintfunction(m)

got some value: 2

25

所以你通过打字很明显什么也得不到。损失惨重。

更新:

既然您已经编辑了这个问题,现在很明显,您的应用程序调用了一些只有int才有意义的上游例程。

既然如此,我仍然认为应该将参数作为已接收的参数传递给上游函数。上游函数将正确处理它,例如,如果需要,将引发错误。我非常怀疑,如果你给IPs一个float,它处理IPs的函数会有奇怪的行为。如果你能告诉我们图书馆的名字,我们可以帮你查一下。

但是。。。如果上游函数的行为不正确,如果你给它一个浮点数(我仍然非常怀疑),就会杀死一些孩子,那么只要调用它上的int():def myintfunction(value):

""" Please pass an integer """

return upstreamfunction(int(value))

你仍然没有打字,所以你得到了不打字的最大好处。

即使如此,如果您真的想输入check,尽管它会降低应用程序的可读性和性能,但绝对没有任何好处,请使用assert来完成它。assert isinstance(...)

assert type() is xxxx

这样我们就可以关闭asserts,并通过调用它来从程序中删除这个特性python -OO program.py

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值