【问题标题】:How to get the name of a variable as a string? [duplicate]如何将变量的名称作为字符串获取? [复制]
【发布时间】:2021-01-18 13:21:57
【问题描述】:

我正在编写一个函数来绘制数据帧图,我想根据传递给函数的数据帧的名称来命名这些图。绘图仪功能的第一行是:

def plotter(data):

假设要传递的数据框是df1,我想知道在调用plotter(data=df1)时如何获取字符串'df1'

【问题讨论】:

  • 您不能,因为只有引用存储在df1 中,而在plotter 函数的上下文中,数据帧称为data
  • 一般不能;事物没有名字,名字有事物。您可以检查源代码或堆栈,但不能保证您会在那里找到名称。例如,当函数以plotter(**kws)plotter(df_factory()) 调用时,您希望代码执行什么操作?
  • 您可以做的是将名称与数据框本身一起提供,但这意味着扩展签名。

标签: python


【解决方案1】:

你可以这样做:

from varname import nameof

def plotter(data, name_df):
  # name_df is a string which is is "df1", then you can add to the plot

plotter(df1, nameof(df1))

【讨论】:

  • 在这种情况下,为什么不只是plotter(df1, 'df1')
  • @Tomerikoo 是的......我真的不知道他是如何获得数据框的名称
  • "假设要传递的数据框是df1,我想知道我怎么能得到字符串'df1'" - 他们只是想要变量...
猜你喜欢
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2020-06-24
  • 2013-08-27
相关资源
最近更新 更多