当前位置: 首页 > 面试题库 >

如何编写函数以返回变量名?

马沛
2023-03-14
问题内容

我想要一个可以将变量/对象名称返回为str的函数,如下所示:

def get_variable_name (input_variable):
    ## some codes

>>get_variable_name(a)
'a'

>>get_variable_name(mylist)
'mylist'

它看起来很傻,但是我需要该函数来构造有关变量的表达式,以供以后在’exec()’上使用。有人可以帮忙写“ get_variable_name”吗?


问题答案:

我现在已经在SO上多次见过关于这种问题的一些变体。答案是 否定的学会随时使用dict名称和对象之间的关联。 稍后您将为此感谢自己。

在回答“我的代码如何发现对象的名称?”这一问题时,以下引自Fredrik Lundh的话(在comp.lang.python上):

获得在门廊上找到的那只猫的名字的方法相同:猫(对象)本身无法告诉您它的名字,并且它并不在乎–因此,找出猫叫的唯一方法是询问您所有的邻居(命名空间),如果它们是他们的猫(对象)…

…。如果您发现它有很多名字,或者根本没有名字,请不要感到惊讶!

注意:从 技术上讲
,至少在CPython实现中,可以获得绑定到对象的名称的列表。如果您有兴趣看演示,请在inspect此处查看我的答案中显示的模块的用法

该技术仅应在一些疯狂的调试会话中使用,不要在设计中使用类似的方法。



 类似资料:
  • 问题内容: 我想回到别处外使用的 范围 的 我猜想这是与范围有关,但它似乎不相同的方式工作 C# 不 问题答案: 是的,我之前的答案不起作用,因为我没有对您的代码给予任何关注。:) 问题在于匿名函数是一个回调函数- 即getJSON是一个异步操作,它将在某个不确定的时间点返回,因此即使变量的范围不在该匿名函数(即闭包)之外,它也会没有您认为应该的价值: 要使用由getJSON调用设置的studen

  • 问题内容: 在Python中,我想编写一个返回另一个函数的函数。返回的函数应该可以通过参数调用,并返回高度和半径为圆柱的体积。 我知道如何从Python中的函数返回 值 ,但是如何返回 另一个函数 ? 问题答案: 使用Python尝试一下: 这样使用它,例如与和: 注意,返回一个函数很简单,只需在函数内部定义一个新函数,然后在最后返回它- 小心地为每个函数传递适当的参数。仅供参考,从另一个函数返回

  • 问题内容: 随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是,这样做不会返回任何值。 数据不为空-如果我警告js文件中的值,它们在那里! 功能: 1 .js文件中的功能(在执行之前包含) 因此,这是执行部分: 而且测试是空的…我已经尝试过不同的编写方式,但是我想我误解了js的可能性吗? 问题答案: 您不能这样做:由于调用是异步的,因此get_data函数无法返回ajax调用

  • 我在玩TypeScript中的条件类型。我想用条件返回类型编写一个函数。如果函数被传递一个字符串,它将返回一个名称,否则它将返回一个Id。 我在返回语句中得到以下错误: 我错过了什么?Thnx! 编辑:直接摘自Anders Hejlsberg在Build 2018上的演讲:https://youtu.be/hDACN-BGvI8?t=2241 他甚至说“我们不再需要写函数重载了…” 如果我将代码更

  • 问题内容: 我想知道是否存在一种实现类似于map getter的功能的方法:它返回返回值作为第一个参数,(可选地分配)第二个值作为第二个参数。因此,我需要可以通过以下方式调用的函数: 问题答案: 不,它无法完成,唯一的选择是返回一个指针并检查它是否为nil。

  • 问题内容: 希望您能提供帮助。我正在寻找一种编写稍后插入一个项目的函数的方法。让我给你看一个例子: 我以为我可以在这里提供一个值,一旦我将其替换,那么显然就不那么容易了。我必须更改/添加什么才能使我的功能正常工作?函数如何知道乘法是?谢谢你们的帮助! 问题答案: 系统要求您返回一个函数,但返回的是计算得出的值: 现在将执行您期望的操作,但是如果将其分配给一个值,它可能会更有用,因此可以多次调用它,