python - 如何在 Python 中打印变量的名称?
问题描述
我正在尝试定义返回变量名称的函数。
>>> def function(x):
... return(str(x))
...
>>> a = 1
>>> function(a)
'1'
我想定义以下函数。我该如何定义它?
>>> a = 1
>>> function(a)
a = 1
解决方案
您所要求的内容是不可能的,因为输入参数在输入您的函数之前已被评估。换句话说,'a'
变量名丢失了,只有值1
提供给你的function
.
如果将变量名称作为字符串提供,则可以使用globals
:
a = 1
def foo(x):
return f'{x} = {globals()[x]}'
foo('a') # 'a = 1'
建议仅出于特定目的使用全局变量。如果变量名很重要,您可以使用字典来代替:
d = {'a': 1}
def foo(myd, x):
return f'{x} = {myd[x]}'
foo(d, 'a') # 'a = 1'
在大多数情况下,字典就足够了。
推荐阅读
- django - GeoDjango - 点和多面体查询集之间的距离
- c++ - 为什么我的模板化函数需要从一个迭代器到另一个迭代器的转换?
- javascript - 无法让 React Grid Ag-grid 在屏幕宽度处自动调整大小
- java - 当用户已经通过身份验证时对 POST 请求进行身份验证
- javascript - Nestjs graphql 场守卫
- r - Erase repeated lines in r with a conditional column
- angular - Angular 材质 (@angular/material) 组件看起来并不像它们必须的那样
- javascript - 批量帐户创建脚本未运行并显示令人困惑的错误消息
- cookies - 删除页面 onUnload 事件中的所有 cookie
- python - 使用 GEKKO 优化框架形成约束方程组