2024-04-25 06:44:10 发布
网友
代码模型和预期结果:
X = 10 Y = (X-10)/2 print(Y) X = 12 print(Y)
我想先打印“0”,然后打印“1”,但显然Y不是动态分配的。你知道吗
Y
我曾尝试使用lambda函数(laY = lambda i: (X-10)/2)来获得此功能,但我一直得到<function <lambda> at 0x7f5f6356eea0>。你知道吗
Y = lambda i: (X-10)/2)
<function <lambda> at 0x7f5f6356eea0>
这只是为了避免需要运行一个函数或在任何改变X值的函数末尾重新定义Y
提前谢谢!你知道吗
I have tried utilizing lambda functions (a la Y = lambda i: (X-10)/2)
您需要调用函数:
print(Y())
至于让print(Y)打印更新后的值?基本上是不可能的,而且存在的变通办法根本不值得。只是要明确地重新计算值。你知道吗
print(Y)
或者,也可以使用属性:
class P: def __init__(self,x): self.x = x self.y = y @property def x(self): return self.__x @property def y(self): return (self.__x-10)/2 @x.setter def x(self, x): self.__x = x
但是,您必须通过p类的实例访问这些值。你知道吗
p = P() p.x = 10 print(p.y) p.x = 12 print(p.y)
你需要给lambda打电话:
将lamda赋给变量本质上与定义函数相同:
def Y(): return (X-10)/2
你不能用普通变量做你想做的事。分配一个变量会将值复制到其中,它不会创建对所用表达式的引用。你知道吗
您需要调用函数:
至于让
print(Y)
打印更新后的值?基本上是不可能的,而且存在的变通办法根本不值得。只是要明确地重新计算值。你知道吗或者,也可以使用属性:
但是,您必须通过p类的实例访问这些值。你知道吗
你需要给lambda打电话:
将lamda赋给变量本质上与定义函数相同:
你不能用普通变量做你想做的事。分配一个变量会将值复制到其中,它不会创建对所用表达式的引用。你知道吗
相关问题 更多 >
编程相关推荐