在python中,为什么0xbin()返回False?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (95)

输入命令0xbin()返回False:

>>> 0xbin()
False

为什么会这样?这种语法应该没有任何意义。函数不能以0开头,十六进制中没有“i”和“n”,而bin函数必须有一些参数。

提问于
用户回答回答于

如果您反汇编代码,您会看到Yself的答案已经确认:

>>> import dis
>>> dis.dis('0xbin()')
  1           0 LOAD_CONST               0 (11)
              2 BUILD_TUPLE              0
              4 COMPARE_OP               6 (in)
              6 RETURN_VALUE
用户回答回答于

您可以使用AST模块获取表达式的抽象语法树

>>> import ast
>>> m = ast.parse('0xbin()')
>>> ast.dump(m)
'Module(
    body=[Expr(
               value=Compare(left=Num(n=11),
                             ops=[In()],
                             comparators=[Tuple(elts=[],
                                                ctx=Load())
                                         ]
                            ))])'

请参阅抽象语法以了解如何解释表达式,但tl; rd:Num(n=11)0xb部分,并Tuple(elts=[], ...)提示空元组而不是函数调用。

扫码关注云+社区

领取腾讯云代金券