What are the differences between type() and isinstance()?

后端 未结 7 2621
青春惊慌失措
青春惊慌失措 2020-11-21 06:06

What are the differences between these two code fragments?

Using type():

import types

if type(a) is types.DictType:
    do_something(         


        
7条回答
  •  星月不相逢
    2020-11-21 07:02

    The latter is preferred, because it will handle subclasses properly. In fact, your example can be written even more easily because isinstance()'s second parameter may be a tuple:

    if isinstance(b, (str, unicode)):
        do_something_else()
    

    or, using the basestring abstract class:

    if isinstance(b, basestring):
        do_something_else()
    

提交回复
热议问题