gpt4 book ai didi

python - 为什么 Python 赋值不返回值?

转载 作者:IT老高 更新时间:2023-10-28 21:32:57 26 4
gpt4 key购买 nike

为什么 Python 赋值是语句而不是表达式?如果它是一个返回赋值右侧值的表达式,那么在某些情况下它会允许更少冗长的代码。有什么我看不到的问题吗?

例如:

# lst is some sequence
# X is come class
x = X()
lst.append(x)

可以改写为:

lst.append(x = X())

好吧,准确地说,上面的方法不起作用,因为 x 将被视为关键字参数。但是另一对括号(或关键字参数的另一个符号)会解决这个问题。

最佳答案

很多人认为赋值是表达式,特别是在 Python 这样的语言中,在条件中允许 any 值(不仅仅是某些 bool 类型的值)容易出错。大概Guido是/曾经是那些有这种感觉的人之一。经典错误是:

if x = y: # oops! meant to say ==

在 Python 中的情况也比在 C 之类的语言中要复杂一些,因为在 Python 中,对变量的第一个赋值也是它的声明。例如:

def f():
print x

def g():
x = h()
print x

在这两个函数中,“print x”行做了不同的事情:一个引用全局变量x,另一个引用局部变量 xg 中的 x 因为赋值是本地的。如果可以将赋值隐藏在一些更大的表达式/语句中,这可能会更加困惑(比现在更加困惑)。

关于python - 为什么 Python 赋值不返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com