0

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?

alphaomega
  • 137
  • 1
  • 15
  • 1
    As 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 [classes](https://www.w3schools.com/python/python_classes.asp) – Jesse Nov 27 '21 at 16:13

2 Answers2

2

In JavaScript typeof f == 'object' is true when all of the following is not true:

  • f is undefined: there is no equivalent in Python
  • f is a number, bigint or boolean: in Python this is an instance of float or int. As bool is a subclass of int, it is included.
  • f is a string: in Python this is an instance of str
  • f is a symbol: there is no equivalent in Python
  • f is a function: in Python you can use callable 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"
trincot
  • 317,000
  • 35
  • 244
  • 286
1

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.

Nothehi
  • 695
  • 6
  • 19