在Python中同时分配和打印

时间:2015-08-28 14:03:36

标签: python

在Python中,有没有办法将结果分配给变量并立即打印出来?换句话说,我正在寻找相当于

的单行
a = something()
print(a)

(只需一次,不是每个作业都应自动打印)。

有REPL,例如对于Scala,这会自动发生:

scala> val count = 1
count: Int = 1

4 个答案:

答案 0 :(得分:2)

好吧,如果你只是想创建一个新变量并打印出你已经向我们展示的那个变量的值,你可以有一个简单的函数来打印并返回值:

def print_and_return(value):
    print(value)
    return value

现在你可以像这样使用它:

>>> a = print_and_return(5)
5
>>> print(a)
5

另一种你永远不应该使用的方法是使用globals()字典。

我再说一遍,你永远不应该这样做。

def print_and_set(name, value):
    globals()[name] = value
    print(globals()[name])

现在您可以使用以下方式调用它:

print_and_set('a', 5)

它将打印5,您还可以访问全局命名空间中的变量a

答案 1 :(得分:1)

从技术上讲,这是一行:

jdbc:derby:metastore_db;create=true

答案 2 :(得分:1)

从技术上讲,您可以使用 sys.path 在同一行“打印”和分配。 请参阅以下内容:

>>> import sys
>>> a = sys.stdout.write("hello")
hello
>>> print(a)
5

如您所见,您“打印” - 通过写入标准输出,这与 print() 本质上相同 - 字符串并将字符串的长度分配给变量 - 而不是字符串本身。

答案 3 :(得分:0)

这是python缺少的,我猜是有充分理由的。在C中你可以有一个有效的语句,如 if a=30 { ... } 因为任何赋值语句都会有指定的值,这可能会导致有人第一次看到代码。#/ p>

此外,烘焙自己的赋值函数会有问题,因为您在函数体内获得了引用副本而不是实际变量

TL; DR; - >不,没有