[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Testing the data type of a value

Luuk <luuk at invalid.lan> writes:

> On 12-5-2019 16:07, Piet van Oostrum wrote:
>> Luuk <luuk at invalid.lan> writes:
>>> After thinking about this, (i am prettry new to python), i was doing this:
>>>>>> print(type(5),type(int),type(5)==type(int),type(5)==int)
>>> <class 'int'> <class 'type'> False True
>>> Can someone explain why   type(5)==int   evaluates to   True ?
>>>>> print(int)
>> <class 'int'>
>> The value of int is the class int, which is the class of 5, so type(5) is also that same class int.
> Maybe i should have asked this:
> What is the difference between 'type(5)==int'? and 'isinstance(5,int)'
> and, if there is no difference why did someone invent 'isinstance()' ...

You'll get different behaviour when subclassing is involved.


    isinstance(object, classinfo)

    Return true if the object argument is an instance of the classinfo
    argument, or of a (direct, indirect or virtual) subclass thereof.