阻止Python打印返回结果

2024-10-06 14:31:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,它既可以返回值,也可以进行打印。示意图:

def func(x):
 print "You're using this function"
 return x**2

有两种不同的方法可以使用该函数,一种是打印以便我可以读取信息,但另一种方法是同时打印并将结果存储在变量中:

^{pr2}$

我想阻止第一次使用打印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]]

所以我生成了一个“不错”的输出,然后有一个很长的列表,其中包含我不想显示的结果。但是,我希望用户有可能将结果存储在一个变量中以供以后使用。在


Tags: 方法函数youdefisofunccubprint
1条回答
网友
1楼 · 发布于 2024-10-06 14:31:28

因为您在交互式解释器中运行代码,所以返回值将始终被打印出来。如果在脚本中运行代码,则不会打印返回值。在

一般来说,打印返回值并没有什么坏处,它对调试非常有用。如果您希望其他人使用您的代码,那么无论如何也不应该以这种方式运行它。在


在进一步编辑之后,您可能需要根据函数是否在交互式解释器中运行来跟踪函数的行为。有关详细信息,请参阅此问题:Tell if Python is in interactive mode

从接受的答案来看:

__main__.__file__ doesn't exist in the interactive interpreter:

import __main__ as main 
print hasattr(main, '__file__')

This also goes for code run via python -c, but not python -m.

例如,您可以决定不返回正在执行的值。然而,这并不能真正解决你的问题。在

我的建议是定义一个显示函数,如果用户想要漂亮的结果表,就调用这个函数。然后使用

>>> display(ela_dist(c_voigt, rotate = True))

或者类似的东西。在

相关问题 更多 >