【发布时间】:2015-12-29 18:48:49
【问题描述】:
我有一个既能返回值又能打印的函数。示意图:
def func(x):
print "You're using this function"
return x**2
我可能希望以两种不同的方式使用该函数,一种是打印以便我可以读取信息,另一种是打印并将结果存储在一个变量中:
>>> func(2)
You're using this function
4
>>> a=func(2)
You're using this function
我想阻止第一次使用打印4。我可以通过某种方式修改函数定义吗?
编辑
由于人们似乎很难理解我来自哪里,因此这是我的函数在交互使用时的输出:
>>> ela_dist(c_voigt, rotate = True)
************************** R E S U L T S **************************
Results with rotation optimization
Symmetry Euclidean distance Angles tx, ty, tz
-------- ------------------ -------------------------------
iso 139.65 GPa n/a n/a n/a deg.
cub 83.66 GPa -1.89 -1.83 6.37 deg.
hex 110.23 GPa -2.14 -4.22 n/a deg.
3 102.16 GPa -3.27 -6.94 n/a deg.
32 102.16 GPa -3.27 -6.94 n/a deg.
4 82.32 GPa -2.52 -1.15 2.14 deg.
4mm 82.32 GPa -2.52 -1.15 6.31 deg.
ort 78.00 GPa -3.05 -1.71 7.87 deg.
mon 62.62 GPa -2.85 0.76 7.62 deg.
************************** R E S U L T S **************************
[['iso', 139.65433517558037, 0.0, 0.0, 0.0], ['cub', 83.663957459095329, -1.8878916427147878, -1.8303975226851734, 6.3671511063645525], ['hex', 110.23296814646618, -2.1378994103876803, -4.2246840445795071, 0.20038249224556773], ['3', 102.16396472738577, -3.2709875018178636, -6.9354445747734825, 5.1898595103729814], ['32', 102.16396472738596, -3.2709866369782259, -6.9354442259896656, -20.03283399363794], ['4', 82.321990809120038, -2.5218897967148739, -1.1525909395834488, 2.1400405876841635], ['4mm', 82.32199080912001, -2.5218897552576087, -1.1525909978835307, 6.3069829557712076], ['ort', 78.001968057183262, -3.0530030281994716, -1.7132006819033545, 7.8685738019737688], ['mon', 62.623413013297196, -2.8503971823612497, 0.75895564714111607, 7.6204664688915926]]
所以我正在生成一个“不错”的输出,然后有一个长长的列表,其中包含我不想显示的结果。但是,我希望用户能够将结果存储在变量中以供以后使用。
【问题讨论】:
-
那么不要在 Python 交互式会话中使用该函数。它与表达式的结果相呼应,这就是您看到
4正在打印的原因。您可以使用temp = func(2)来防止这种情况发生。 -
我从来没有这么快看到这么多反对票。这个问题有什么明显的问题(老实说,我想知道)?
-
好吧,一个最小的例子是在 python 控制台中输入
2。该问题与在函数中打印甚至只是调用它无关。 -
@KarolyHorvath 那么我会因为不知道这一点而受到惩罚?如果您因不知道问题的答案而受到处罚,该网站应该如何运作。显然,如果我知道无法阻止这种行为,我就不会问这个问题。
-
我不知道为什么这个问题被如此低估。这是我刚才想问的完全相同的问题,所以我投了赞成票。感谢在这 5 次快速投票后没有删除问题。
标签: python