不使用等号定义变量

Roy*_*zem 1 python operators

我试着去理解一些东西

x = 10
print x
Run Code Online (Sandbox Code Playgroud)

结果将是 10

x is 10
print x
Run Code Online (Sandbox Code Playgroud)

结果将是错误 X 未定义。

x = 10
y = 10

if x == y:
  print True

if x is y:
  print True
Run Code Online (Sandbox Code Playgroud)

结果是:

True
True
Run Code Online (Sandbox Code Playgroud)

是否有另一种不使用等号来定义变量的方法?

ins*_*get 6

你的问题很奇怪。实际上,您永远不想不使用=来分配给变量。但为了完整起见,可以通过使用globals()(或locals(),视情况而定) 来分配给新变量。

这是一种方法:

globals().__setitem__('x', 10)
Run Code Online (Sandbox Code Playgroud)

证明:

In [139]: x
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-139-401b30e3b8b5> in <module>()
----> 1 x

NameError: name 'x' is not defined

In [140]: globals().__setitem__('x', 10)

In [141]: x
Out[141]: 10
Run Code Online (Sandbox Code Playgroud)

编辑

别乱搞locals()。酒吧里那个精神不稳定、过于狂热、醉酒的家伙会搞砸你的代码,让你说“他疯了”。
所以就别乱搞了locals()。另一方面,只需使用x = 10并保存你的理智。呸! 这篇文章对身体造成伤害