Python 可以保存到一个变量中吗?

Python 可以保存到一个变量中吗?,python,variables,Python,Variables,在何时声明条件时,可以将条件本身存储在变量中,而不是立即返回它 例如: a = 3 b = 5 x = (a == b) print(x) a = 5 print(x) 回报是 False False 然而,我希望得到 False True 我只是在享受Python的魔力。我知道可以使用函数,但我想知道是否可以使用变量。当然,这就是所谓的函数!:) 当然,这叫做函数!:) 不,你需要一个函数 def test(param_1, param_2): return param_1

在何时声明条件时,可以将条件本身存储在变量中,而不是立即返回它

例如:

a = 3
b = 5

x = (a == b)
print(x)

a = 5
print(x)
回报是

False
False
然而,我希望得到

False
True

我只是在享受Python的魔力。我知道可以使用函数,但我想知道是否可以使用变量。

当然,这就是所谓的函数!:)


当然,这叫做函数!:)


不,你需要一个函数

def test(param_1, param_2):
    return param_1 == param_2

a = 3
b = 5
print(test(a, b))
a = 3
print(test(a, b))

不,你需要一个函数

def test(param_1, param_2):
    return param_1 == param_2

a = 3
b = 5
print(test(a, b))
a = 3
print(test(a, b))

使其成为一个简单的功能:

def f(a,b):
    x= (a==b)
    print x
f(3,5)
f(5,5)


此外,如果您询问是否可以将条件存储在变量中,那么您已经这样做了。这就是为什么X根据函数的输出而持有true或false值的原因。如果只想将其用于变量而不用于函数,则必须在每次更新任一变量后添加
print(x)
,使其成为一个简单的函数:

def f(a,b):
    x= (a==b)
    print x
f(3,5)
f(5,5)


此外,如果您询问是否可以将条件存储在变量中,那么您已经这样做了。这就是为什么X根据函数的输出而持有true或false值的原因。如果只想将其用于变量而不用于函数,则每次更新任一变量后,必须添加
print(x)
,该条件始终会立即计算。如果要按需对其求值,可以将其设置为函数或lambda表达式:

x = lambda: a == b
print(x())
此外,您还可以执行一些黑魔法,并创建一个类,在打印条件时对其进行评估:

class Condition:
  def __init__ (self, cond):
    self.cond = cond
  def __str__ (self):
    return str(self.cond())

x = Condition(lambda: a == b)
print(x)

不过,这只是出于教育目的,不要在生产中使用。还请注意,它只在打印语句中工作-要使它在
if
语句等中工作,您还必须覆盖
\uuuubool\uuu
(Python3)或
\uuuuuu非零
(Python2)。

始终会立即计算条件。如果要按需对其求值,可以将其设置为函数或lambda表达式:

x = lambda: a == b
print(x())
此外,您还可以执行一些黑魔法,并创建一个类,在打印条件时对其进行评估:

class Condition:
  def __init__ (self, cond):
    self.cond = cond
  def __str__ (self):
    return str(self.cond())

x = Condition(lambda: a == b)
print(x)

不过,这只是出于教育目的,不要在生产中使用。还请注意,它只在打印语句中起作用-要使它在
if
语句中起作用,您还必须重写
\uuuubool\uuu
(python 3)或
\uuuuuuu非零
(python 2)。

您可以使用:

然后:


您可以使用以下方法获得这种反应模式:

然后:


如果您只希望在打印x时发生奇迹,请覆盖
\uuuu str\uuuu

>>> class X(object):
...     def __str__(self):
...         return str(a == b)
...
>>> x = X()
>>> print(x)
False
>>> a = 5
>>> print(x)
True

如果您只希望在打印x时发生奇迹,请覆盖
\uuuu str\uuuu

>>> class X(object):
...     def __str__(self):
...         return str(a == b)
...
>>> x = X()
>>> print(x)
False
>>> a = 5
>>> print(x)
True

您可以使用lambda函数:
x=lambda,b:a==b
,然后使用
x(3,5)
无法得到预期结果的原因是,变量
x
中存储的条件没有用
a
中存储的新值更新。您可以使用lambda函数:
x=lambda,b:a==b
然后
x(3,5)
你没有得到你期望的结果的原因是因为变量
x
中存储的条件没有用
a
中存储的新值更新。哦,是的,我知道,但我想知道它在变量中是否可能。不是真的,你可以创建一个依赖于全局状态的函数,而不是编写
print(x)
,你可以编写
print(x())
,但它很难看,也不是一个纯函数哦,是的,我知道,但我想知道它在变量中是否可行。不太可能,你可以创建一个依赖于全局状态的函数,您可以编写
print(x)
,而不是编写
print(x())
,但它很难看,也不是一个纯粹的函数