我正在将一些JavaScript代码转换为Python。
JavaScript中有一个if条件,看起来像:CCD_ 1,然后如果该条件评估为真,则采取一系列操作。
在这种情况下,f
将类似于:f = { 'fields': ["user_id", "date_started", "date_ended"] }
在这种情况下,f
是dict
,但可能并不总是这样。
我知道在JavaScript中,几乎所有的东西都被认为是一个对象。Python中object
的等效约束是什么?
在JavaScript中,当以下所有项均为而非true时,typeof f == 'object'
为true:
f
就是undefined
:Python中没有等价物if (typeof f === 'object')
0是一个数字、bigint或boolean:在Python中,这是float
或int
的实例。由于bool
是int
的一个子类,因此它被包括在内f
是一个字符串:在Python中,这是str
的一个实例f
是一个符号:在Python中没有等价的符号f
是一个函数:在Python中,您可以使用callable
来检测
注意:typeof null == 'object'
为true,因此在Python中None
应该通过等效测试。
因此,这就引出了以下Python测试:
if not (callable(f) or isinstance(f, (int, float, str))):
# it is an "object"
您可以使用type
方法来获取python中的变量类型:
if (type(f) is dict)
实际上,python中的js对象就是字典!你可以从这个链接看到更多的细节。