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?
-
1As you said, almost everything in JavaScript is considered an object. The only things that aren't treated as objects are primitive types such as integers, strings, booleans, etc. There are probably many types in Python that would simply be considered an object in JavaScript. Although if you're talking about types with custom properties, you should take a look at classesJesse– Jesse2021年11月27日 16:13:40 +00:00Commented Nov 27, 2021 at 16:13
2 Answers 2
In JavaScript typeof f == 'object' is true when all of the following is not true:
fisundefined: there is no equivalent in Pythonfis a number, bigint or boolean: in Python this is an instance offloatorint. Asboolis a subclass ofint, it is included.fis a string: in Python this is an instance ofstrfis a symbol: there is no equivalent in Pythonfis a function: in Python you can usecallableto 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"
Comments
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.
4 Comments
set? An instance of any class?