据我了解,Python 语言中的所有数据都表示为对象,并创建了对象,包括使用文字。因此,1是一个类对象字面量int:
>>> type(1)
<class 'int'>
然后我决定看一下这个对象的方法:
>>> dir(1)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
当我决定使用该方法bit_length时,我得到了一个错误:
>>> 1.bit_length()
File "<stdin>", line 1
1.bit_length()
^
SyntaxError: invalid syntax
为什么?
因为在这种情况下,解析器期望点后面的数字的小数部分并将点视为小数分隔符。您可以使用括号解决此问题:
或在数字后加一个空格:
供参考 - 对实数进行类似的构造,因为 数字中不能有第二个点,分析器可以明确地确定在第二个点之后调用了类型为 的文字方法
float: