1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python高级函数 将函数作为变量 返回函数_从函数外部返回变量名 作为python函数内

python高级函数 将函数作为变量 返回函数_从函数外部返回变量名 作为python函数内

时间:2019-03-02 04:34:26

相关推荐

python高级函数 将函数作为变量 返回函数_从函数外部返回变量名 作为python函数内

因此,我创建了一个函数,它将一个操作(在本例中,一个数组与一个正弦波进行逐点乘法,但这与我的问题无关)。在

现在我已经创建了另一个函数,我想用它创建一个string的python代码,以便以后多次应用第一个函数。第二个函数的输入可以是string,也可以是array,因此如果需要,我也可以在第二个函数的输出上使用第二个函数。我在字符串中获取变量名的方法在函数之外工作。在

输入:var = np.array([[1,3],[2,4]]) # or sometimes var = 'a string'

if type(var)==str:

var_name = var

else:

var_name = [ k for k,v in locals().items() if v is var][0]

var_name

输出:

^{pr2}$

所以这里var是提供给函数的变量(数组或字符串),在本例中是一个数组。if语句很好地返回了它的名称。在

但是,当我在函数中使用这个函数时,不管我给它什么输入,它实际上似乎在locals()中查找var。不知何故,它不会从函数输入中获取var。在

定义:def functionTWO(var, listoflistsofargs=None):

if type(var)==str:

var_name = var

else:

var_name = [ k for k,v in locals().items() if v is var][0]

if listoflistsofargs==None:

return var_name

command = []

for i in range(len(listoflistsofargs)):

if i==0:

command.append('functionONE(')

command.append(var_name)

command.append(',%.17f, %.17f)' % tuple(listoflistsofargs[i]))

else:

command.insert(0,'functionONE(')

command.append(',%.17f, %.17f)' % tuple(listoflistsofargs[i]))

''.join(command)

command[0] = var_name + ' + ' + command[0]

return ''.join(command)

输入:somearray = np.array([[1,2,3],[1,2,3],[1,2,3]])

args = [[1,3],[6,5]]

command = functionTWO(somearray, args)

command

输出:NameError: name 'var' is not defined

想要的输出:'functionONE(functionONE(somearray, 1, 3), 6, 5)'

为什么listoflistsofargs取自函数输入而var不是?我在functionTWO的定义中的listcomponsion中指定var。通常,当我使用列表理解和函数输入时,它工作得很好。有人知道为什么这里不是这样吗?提前谢谢你!在

编辑:所以我想答案是不要。Marcin实现的类看起来更干净,代码量也大致相同。太可惜了,我不能在函数中使用这个函数。对于其他关于使用变量名作为字符串的dont(实际上是其他想法),有一个this问题,我在上面列出了对变量名的理解。在

python高级函数 将函数作为变量 返回函数_从函数外部返回变量名 作为python函数内部的字符串...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。