如何打印传递给函数的参数值
How to print the values of parameters passed into a function
我不知道如何检索、存储和打印传递给函数的参数值。我知道很多帖子都与这个问题有关,但我找不到任何符合我想做的简单事情的东西。
举个简单的例子:
def times(value, power):
return value**power
如果我运行这个函数然后写:
x = times(2.72, 3.1)
print(f'Result of calculation is: {x: .6f}')
那么输出将是:
Result of calculation is: 22.241476
好的,但这不是我想要的;我希望能够打印 result、value 和 power,并让以下行作为输出,最好使用上面的 print
;像 print(f’some text here: {something}’)
…
期望输出:
Result of calculation is: 22.241476
Value passed to function was: 2
Power passed to function was: 3
最有效的方法是什么?
您需要先将参数存储在调用函数的代码中的变量中。
假设定义了函数'times'。
a = 2.72
b = 3.1
x = times(a, b)
print(f'Result of calculation is: {x: .6f}')
print(f'Value passed to function was: {a}')
print(f'Power passed to function was: {b}')
您可以随时添加更多“打印”行。
所以代码看起来像这样:
def times(value, power):
print(f'Result of calculation is: {x: .6f}')
print(f'Value passed to function was: {value}')
print(f'Power passed to function was: {power}')
然后您可以像这样将值传递给函数:
times(2.72, 3.1)
请尝试以下代码。它使用了闭包的概念(google它)。希望对你有帮助。
def times():
value = float(input('Enter a value:'))
power = float(input('Enter a power: '))
def raise_to_power():
return value ** power
print(
f'Result of calculation is: {raise_to_power(): .6f}\nValue passed to function was: {value}\nPower passed to function was: {power}')
times()
问题似乎是关于访问函数的命名空间,而不仅仅是打印变量的值。如果命名空间的概念对您来说是新的,我建议阅读 Python documentation and Real Python's 博客 post 关于命名空间的 Python。让我们看看有几种方法可以满足您的要求。
打印值很简单:
def times(value, power):
print(f"Value passed to function was: {value}")
print(f"Power passed to function was: {power}")
print(f'Result of calculation is: {x: .6f}')
如果您需要按照您在问题中描述的方式打印出来,则应返回值。这可以通过将您的函数更新为:
来完成
def times(value, power):
return value, power, value**power
v, p, result = times(2,3)
print(f'Result of calculation is: {result: .6f}')
print(f"Value passed to function was: {v}")
print(f"Power passed to function was: {p}")
但是,返回参数似乎有点奇怪,因为人们会假设您作为开发人员可以在代码的其他地方捕获这些值。如果要查看给定命名空间的变量及其值,请使用相应的函数。要查看位于函数 times()
本地命名空间中的 value
和 power
变量,请使用 locals()
其中 returns 一个字典对象,它是当前本地命名空间。
def times(value, power):
print(locals())
return value**power
>>> times(5, 4)
{'value': 5, 'power': 4}
625
如果变量定义在全局命名空间中,(请记住全局变量应谨慎使用)您可以使用globals()
在全局命名空间中查找值:
VALUE = 2
POWER = 3
def times(value=VALUE, power=POWER):
return value**power
>>> globals()['VALUE']
2
>>> globals()['POWER']
3
我希望这可以帮助您弄清楚如何完成您正在做的事情。我建议花一些时间阅读 Python 如何查看和管理命名空间。如果您想观看视频,请查看此 PyCon talk by Raymond Hettinger 面向对象编程的 4 种不同方式。
我不知道如何检索、存储和打印传递给函数的参数值。我知道很多帖子都与这个问题有关,但我找不到任何符合我想做的简单事情的东西。
举个简单的例子:
def times(value, power):
return value**power
如果我运行这个函数然后写:
x = times(2.72, 3.1)
print(f'Result of calculation is: {x: .6f}')
那么输出将是:
Result of calculation is: 22.241476
好的,但这不是我想要的;我希望能够打印 result、value 和 power,并让以下行作为输出,最好使用上面的 print
;像 print(f’some text here: {something}’)
…
期望输出:
Result of calculation is: 22.241476
Value passed to function was: 2
Power passed to function was: 3
最有效的方法是什么?
您需要先将参数存储在调用函数的代码中的变量中。
假设定义了函数'times'。
a = 2.72
b = 3.1
x = times(a, b)
print(f'Result of calculation is: {x: .6f}')
print(f'Value passed to function was: {a}')
print(f'Power passed to function was: {b}')
您可以随时添加更多“打印”行。
所以代码看起来像这样:
def times(value, power):
print(f'Result of calculation is: {x: .6f}')
print(f'Value passed to function was: {value}')
print(f'Power passed to function was: {power}')
然后您可以像这样将值传递给函数:
times(2.72, 3.1)
请尝试以下代码。它使用了闭包的概念(google它)。希望对你有帮助。
def times():
value = float(input('Enter a value:'))
power = float(input('Enter a power: '))
def raise_to_power():
return value ** power
print(
f'Result of calculation is: {raise_to_power(): .6f}\nValue passed to function was: {value}\nPower passed to function was: {power}')
times()
问题似乎是关于访问函数的命名空间,而不仅仅是打印变量的值。如果命名空间的概念对您来说是新的,我建议阅读 Python documentation and Real Python's 博客 post 关于命名空间的 Python。让我们看看有几种方法可以满足您的要求。
打印值很简单:
def times(value, power):
print(f"Value passed to function was: {value}")
print(f"Power passed to function was: {power}")
print(f'Result of calculation is: {x: .6f}')
如果您需要按照您在问题中描述的方式打印出来,则应返回值。这可以通过将您的函数更新为:
来完成def times(value, power):
return value, power, value**power
v, p, result = times(2,3)
print(f'Result of calculation is: {result: .6f}')
print(f"Value passed to function was: {v}")
print(f"Power passed to function was: {p}")
但是,返回参数似乎有点奇怪,因为人们会假设您作为开发人员可以在代码的其他地方捕获这些值。如果要查看给定命名空间的变量及其值,请使用相应的函数。要查看位于函数 times()
本地命名空间中的 value
和 power
变量,请使用 locals()
其中 returns 一个字典对象,它是当前本地命名空间。
def times(value, power):
print(locals())
return value**power
>>> times(5, 4)
{'value': 5, 'power': 4}
625
如果变量定义在全局命名空间中,(请记住全局变量应谨慎使用)您可以使用globals()
在全局命名空间中查找值:
VALUE = 2
POWER = 3
def times(value=VALUE, power=POWER):
return value**power
>>> globals()['VALUE']
2
>>> globals()['POWER']
3
我希望这可以帮助您弄清楚如何完成您正在做的事情。我建议花一些时间阅读 Python 如何查看和管理命名空间。如果您想观看视频,请查看此 PyCon talk by Raymond Hettinger 面向对象编程的 4 种不同方式。