在python def interleave(dfs):
data = np.transpose(np.array([np.empty(dfs[0].shape[0]*len(dfs), dtype=dt) for dt in dfs[0].dtypes]))
out = pd.DataFrame(data, columns=dfs[0].columns)
for ix, df in enumerate(dfs):
out.iloc[ix::len(dfs),:] = df.values
return out
中显示命名空间中定义的所有名称。我检查过,它工作正常。
但是当我使用dir
时,它没有显示我在函数内创建的变量。为什么呢?
以下是代码示例:
dir(function_name)
答案 0 :(得分:0)
至于为什么dir(youfunc)
没有列出本地变量,这很简单,因为记录dir(obj)
列出了obj
的属性,而本地变量不是函数对象的属性。
在函数本身之外,您可以使用yourfunc.func_code.co_varnames
获取函数的本地变量名称列表(请注意参数是局部变量):
def foo(bar):
baaz = 42
print(foo.func_code.co_varnames)
但您显然无法从函数外部访问本地变量值,因为这些值仅在函数执行时才存在。
在函数中,您可以使用locals()
获取本地变量:
def foo(bar):
baaz = 42
print(locals())