【改善Python程序的91个建议】建议12 不推荐使用type来进行类型检查

摘录来自: 张颖 赖勇浩 著. “编写高质量代码:改善Python程序的91个建议。

1 不刻意进行类型检查,而是在出错的情况下通过抛出异常来进行处理,这是较为常见的方式。

 

2 基于内建类型扩展的用户自定义类型,type函数并不能准确返回结果。

例子:

class UserInt(int):
    def __init__(self,val=0):
        self.__val=int(val)

n = UserInt()
print(type(n) is type(int))


输出:

dotzdeMacBook-Pro-2:python dotz$ python work/test.py 
False

 

3 在古典类中,任意类的实例的type()返回结果都是<type 'instance'>

例子:

class A:
    pass
class B:
    pass
a = A()
b = B()
print(type(a))
print(type(a) == type(b))

输出:
dotzdeMacBook-Pro-2:python dotz$ python2.7 work/test.py 
<type 'instance'>
True

4 使用isinstance()函数来进行类型检测

例子:

>>> isinstance(2,int)
True

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值