相关疑难解决方法(0)

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

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

>>> 0xbin()
False
Run Code Online (Sandbox Code Playgroud)

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

python

191
推荐指数
4
解决办法
7842
查看次数

for循环名称列表表达式是否合法?

在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)

python language-lawyer

4
推荐指数
1
解决办法
141
查看次数

标签 统计

python ×2

language-lawyer ×1