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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/idwtwt/article/details/86591026

摘录来自: 张颖 赖勇浩 著. “编写高质量代码:改善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

猜你喜欢

转载自blog.csdn.net/idwtwt/article/details/86591026
今日推荐