输入命令0xbin()返回False:
>>> 0xbin()
False
Run Code Online (Sandbox Code Playgroud)
为什么会这样?这种语法应该没有任何意义.函数不能以0开头,十六进制中没有"i"和"n",bin函数必须有一些参数.
在CPython 2.7.10和3.4.3以及PyPy 2.6.0(Python 2.7.9)中,在for循环中使用表达式(或它们的某些子集)作为名称列表显然是合法的.这是一个典型的for循环:
>>> for a in [1]: pass
...
>>> a
1
Run Code Online (Sandbox Code Playgroud)
但您也可以使用对象中的属性:
>>> class Obj(object): pass
...
>>> obj = Obj()
>>> for obj.b in [1]: pass
...
>>> obj.b
1
Run Code Online (Sandbox Code Playgroud)
你甚至可以使用表达式中的属性:
>>> for Obj().c in [1]: pass
...
Run Code Online (Sandbox Code Playgroud)
但并非所有表达式都可行:
>>> for (True and obj.d) in [1]: pass
...
File "<stdin>", line 1
SyntaxError: can't assign to operator
Run Code Online (Sandbox Code Playgroud)
但只要属性在外面,他们就会这样做吗?
>>> for (True and obj).e in [1]: pass
...
>>> obj.e
1
Run Code Online (Sandbox Code Playgroud)
或者可以分配什么?
>>> for {}['f'] in [1]: …Run Code Online (Sandbox Code Playgroud)