定义的函数调用 returns 名称未定义错误

defined function call returns name not defined error

我定义了以下函数:

def create_table(table,L):
    table={'BBGTicker':L}
    table=pd.DataFrame(table)
    return table

尝试执行例如:

c=create_table(c,put_options_create)

其中 put_options_create 是一个列表 returns 以下错误:

名称'c'未定义。

如果我要写:

c={'BBGTicker':put_options_create}
c=pd.DataFrame(c)

这会起作用并给我一个 table。

上面的函数有什么问题?

create_table第一个参数没用。 table 参数立即被 table={'BBGTicker':L} 覆盖,因此没有必要使用该参数。

只需将函数更改为:

def create_table(L):
    table={'BBGTicker':L}
    table=pd.DataFrame(table)
    return table

然后称其为

c=create_table(put_options_create)

要回答为什么会这样:函数调用期间 () 之间的变量必须已经存在。如果您尚未为 c 分配值,则 create_table(c,put_options_create) 没有意义。您只在那里提供您正在 提供 函数的数据。您没有在参数列表数据中指定您希望返回的数据*


* 可以通过对象的变异通过参数“return”数据,但这不是您在这里尝试做的。