2024-04-25 07:15:11 发布
网友
我希望得到一个导出Numpy数组的函数,但是使用输入到函数的变量的名称作为导出文件的名称。比如:
MyArray = [some numbers] def export(Varb): return np.savetxt("%s.dat" %Varb.name, Varb) export(MyArray)
它将输出一个名为'我的数组.dat'填充了[一些数字]。我不知道怎么做变量名称“比特。有什么建议吗?在
我是Python和编程新手,所以我希望有一些简单的东西我错过了! 谢谢。在
我不推荐这样的代码样式,但您可以这样做:
import copy myarray = range(4) for k, v in iter(copy.copy(locals()).items()): if myarray == v: print k
这将把myarray作为输出。要在对导出有用的函数中执行此操作,请使用:
myarray
locals()和globals()都提供了将变量名称作为键和变量值作为值的字典。在
locals()
globals()
按以下方式使用函数:
some_data = list(range(4)) export_with_name(some_data)
提供一个名为some_data的文件
some_data
[0, 1, 2, 3]
作为内容。在
经过测试并与Python2.7和3.3兼容
你不能这样做。Python对象不知道在任何特定的时间,哪些命名变量引用了它们。当变量被取消引用并发送到函数时,您不知道它来自何处。考虑一下这段代码:
map(export, myvarbs)
在这里,varb位于某种容器中,甚至没有引用它们的命名变量。在
import os import inspect import re number_array = [8,3,90] def varname(p): for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]: m = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)', line) if m: return m.group(1) def export(arg): file_name = "%s.dat" % varname(arg) fd = open(file_name, "w") fd.writelines(str(arg)) fd.close() export(number_array)
请参阅How can you print a variable name in python?以获取有关def varname()的更多详细信息
def varname()
我不推荐这样的代码样式,但您可以这样做:
这将把
^{pr2}$myarray
作为输出。要在对导出有用的函数中执行此操作,请使用:locals()
和globals()
都提供了将变量名称作为键和变量值作为值的字典。在按以下方式使用函数:
提供一个名为
some_data
的文件作为内容。在
经过测试并与Python2.7和3.3兼容
你不能这样做。Python对象不知道在任何特定的时间,哪些命名变量引用了它们。当变量被取消引用并发送到函数时,您不知道它来自何处。考虑一下这段代码:
在这里,varb位于某种容器中,甚至没有引用它们的命名变量。在
请参阅How can you print a variable name in python?以获取有关
def varname()
的更多详细信息相关问题 更多 >
编程相关推荐