首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python灵活的内联变量赋值

问python灵活的内联变量赋值
EN

Stack Overflow用户
提问于 2014-07-15 14:36:56
回答 4查看 7.4K关注 0票数 5

我希望在python中灵活地为变量赋值,无论该变量在我的代码中的什么位置。

例如,假设If语句中有一个变量x...

代码语言:javascript
复制
if(x == 5):
    print "that's odd."
else:
    print "Woot."

我希望能够在if语句中正确赋值x,如下所示:

代码语言:javascript
复制
if((x=3) == 5):
    print "that's odd."
else:
    print "Woot."

这有可能吗?这是另一个例子。假设我有一行代码:

代码语言:javascript
复制
y = x + 10

我想在这里给x赋值:

代码语言:javascript
复制
y = (x=3) + 10

所以我正在寻找一种方法,在我的代码中的任何地方找到一个变量,并给它赋值。有没有一种pythonic式的语法?

EN

回答 4

Stack Overflow用户

发布于 2019-01-10 02:50:39

在Python中,您可以使用assignment expressions (operator :=):

代码语言:javascript
复制
if (x := 3) == 5:
    print("that's odd")

y = (x := 3) + 10
票数 15
EN

Stack Overflow用户

发布于 2014-07-15 14:49:36

“在Python中,赋值是一个语句,而不是表达式,因此不能在任意表达式中使用。这意味着常见的C语言习惯用法如下:

代码语言:javascript
复制
while (line = readline(file)) {
    ...do something with line...
}

或

代码语言:javascript
复制
if (match = search(target)) {
    ...do something with match...
}

不能在Python中按原样使用。“

http://effbot.org/pyfaq/why-can-t-i-use-an-assignment-in-an-expression.htm

票数 6
EN

Stack Overflow用户

发布于 2016-09-15 18:06:20

globals().setitem('a',1)或a

这有点老生常谈,但有两件事是可能的:通过locals()或globals()函数声明/赋值一个变量。使用or链接一个inplace函数(返回None)。

我怀疑使用它们中的任何一个都被认为是一个好的实践,但它们是可用的

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

https://stackoverflow.com/questions/24751423

复制
相关文章

相似问题

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