Estoy trabajando para convertir un código JavaScript en Python.
Hay una condición if en el JavaScript que se parece a: if (typeof f === 'object') y luego se toman una serie de acciones si esta condición se evalúa como verdadera.
En este caso, f sería algo como: f = { 'fields': ["user_id", "date_started", "date_ended"] }
En este caso, f es un dict , pero puede que no siempre sea así.
Sé que en JavaScript casi todo se considera un objeto. ¿Cuál sería la restricción equivalente al object en Python?
En JavaScript typeof f == 'object' es verdadero cuando todo lo siguiente no es verdadero:
f no está undefined : no hay equivalente en Pythonf es un número, bigint o booleano: en Python, esta es una instancia de float o int . Como bool es una subclase de int , se incluye.f es una cadena: en Python, esta es una instancia de strf es un símbolo: no hay equivalente en Pythonf es una función: en Python puedes usar callable para detectar esto Advertencia: typeof null == 'object' es verdadero, por lo que en Python None debería pasar la prueba equivalente.
Esto nos lleva a la siguiente prueba en Python:
if not (callable(f) or isinstance(f, (int, float, str))): # it is an "object"