首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python 3+中创建一个自动更新的变量?

如何在Python 3+中创建一个自动更新的变量?
EN

Stack Overflow用户
提问于 2017-08-08 19:26:21
回答 5查看 697关注 0票数 1

代码模拟和预期结果:

代码语言:javascript
复制
X = 10
Y = (X-10)/2
print(Y)
X = 12
print(Y)

我想要打印"0“,然后再打印"1",但显然没有动态分配Y

我尝试过使用lambda函数( la Y = lambda i: (X-10)/2) )来获得这个功能,但是我一直在获取<function <lambda> at 0x7f5f6356eea0>

这只是为了避免在任何更改X值的函数末尾运行函数或重新定义Y。

提前感谢!

EN

回答 5

Stack Overflow用户

发布于 2017-08-08 19:29:08

我尝试过使用lambda函数( la Y = lambda i: (X-10)/2) )。

您需要调用该函数:

代码语言:javascript
复制
print(Y())

如何让print(Y)打印更新的值?大多数情况下是不可能的,而现有的解决办法根本不值得。只需明确地说明如何重新计算值。

票数 0
EN

Stack Overflow用户

发布于 2017-08-08 19:29:17

你得打电话给兰博达:

代码语言:javascript
复制
print(Y())

将lamda分配给变量本质上与定义函数是一样的:

代码语言:javascript
复制
def Y():
    return (X-10)/2

你不能用普通变量做你想做的事。分配变量会将值复制到变量中,它不会创建对所使用表达式的引用。

票数 0
EN

Stack Overflow用户

发布于 2017-08-08 19:32:17

您需要为您的lambda函数提供x参数。在你的情况下,这是10或12。

代码语言:javascript
复制
y = lambda x: (x-10)/2
print(y(10))

>>> 0.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45576565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档