I am working on converting some JavaScript code into Python.
There is an if condition in the JavaScript that looks something like:
if (typeof f === 'object')
and then a series of actions are taken if this condition evaluates to true.
In this case f
would be something like:
f = { 'fields': ["user_id", "date_started", "date_ended"] }
In this case f
is a dict
, but it might not always be the case.
I know that in JavaScript nearly everything is considered an object.
What would be the equivalent constraint to object
in Python?
CodePudding user response:
In JavaScript typeof f == 'object'
is true when all of the following is not true:
f
isundefined
: there is no equivalent in Pythonf
is a boolean, number or bigint: in Python this is an instance ofint
offloat
. Asbool
is a subclass ofint
, it is included.f
is a string: in Python this is an instance ofstr
f
is symbol: there is no equivalent in Pythonf
is a function: in Python you can usecallable
to detect this
Caveat: typeof null == 'object'
is true, so in Python None
should pass the equivalent test.
So this brings us to the following test in Python:
if not (callable(f) or isinstance(f, (int, float, str))):
# it is an "object"
CodePudding user response:
you can use type
method for getting type of variables in python:
if (type(f) is dict)
Actually, js objects in python are dictionaries! you can see more details from this link.