Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中是否有任何替代方法可以像unix shell脚本{!variableName}中那样在运行时替换变量_Python_Python 3.x_Bash - Fatal编程技术网

python中是否有任何替代方法可以像unix shell脚本{!variableName}中那样在运行时替换变量

python中是否有任何替代方法可以像unix shell脚本{!variableName}中那样在运行时替换变量,python,python-3.x,bash,Python,Python 3.x,Bash,在unix shell脚本中: 如果我打电话 function\u name“${!variable}”->变量将在执行/运行时被替换 python中是否存在其他替代方案?在创建变量之前,还涉及一些其他逻辑。但我对{!variable}备选方案感兴趣 您正在寻找eval功能: a = "there" b = "a" eval(b) 产生输出: 'there' 当然,eval函数虽然比bash间接变量引用要详细一点,但它的用途也要广泛得多,因为可以让间接引用的变量(b)包含任何python表达

在unix shell脚本中: 如果我打电话
function\u name“${!variable}”
->变量将在执行/运行时被替换


python中是否存在其他替代方案?在创建
变量之前,还涉及一些其他逻辑。但我对
{!variable}
备选方案感兴趣

您正在寻找
eval
功能:

a = "there"
b = "a"
eval(b)
产生输出:

'there'

当然,
eval
函数虽然比bash间接变量引用要详细一点,但它的用途也要广泛得多,因为可以让间接引用的变量(
b
)包含任何python表达式。

您正在寻找
eval
函数:

a = "there"
b = "a"
eval(b)
产生输出:

'there'

当然,
eval
函数虽然比bash间接变量引用要详细一点,但它的用途也要广泛得多,因为可以让间接引用的变量(
b
在本例中)包含任何python表达式。

在python函数中是第一类对象。这意味着您可以像传递任何变量一样传递它们

def print_this():
    print('this')

def print_that():
    print('that')

p1 = print_this
p2 = print_that

p1()
p2()

因此,在python中不需要使用
eval

函数是一级对象。这意味着您可以像传递任何变量一样传递它们

def print_this():
    print('this')

def print_that():
    print('that')

p1 = print_this
p2 = print_that

p1()
p2()


因此,您不需要使用
eval

您给出的是bash的答案,他要求使用python替代方法。@Chris看起来不像bashsyntax@ChrisMaes这个答案不是抨击。我刚在python3上试过,效果不错。我的错。你的回答是正确的。这仍然是一个重复的问题,应该标记为这样。谢谢,我不知道,python中有一个eval。我想这就是我的答案。将关闭此对话框。您正在给出bash答案,他要求提供python替代方案。@Chris,看起来不像bashsyntax@ChrisMaes这个答案不是抨击。我刚在python3上试过,效果不错。我的错。你的回答是正确的。这仍然是一个重复的问题,应该标记为这样。谢谢,我不知道,python中有一个eval。我想这就是我的答案。将关闭此操作。您正在假设为什么操作需要按名称访问变量。你可能是对的,但对他的问题的严格回答是使用
eval
。我也不认为OP试图将函数名放在变量中,而是简单地将变量名的内容传递给函数(我不是bash专家)。eval可能很危险,只能作为最后的手段使用。我不建议将此作为第一步。我检查了函数的bash语法,我认为您误解了OP的问题。OP想要的不是调用变量中名为的函数,而是调用已知函数,并将另一个变量中名为的变量的内容传递给它。您提供的答案是对不同问题的正确答案。如果是这样,那么使用
dict
的@chepner answer就是正确答案。无法推荐
eval
。您正在假设为什么OP需要按名称访问变量。你可能是对的,但对他的问题的严格回答是使用
eval
。我也不认为OP试图将函数名放在变量中,而是简单地将变量名的内容传递给函数(我不是bash专家)。eval可能很危险,只能作为最后的手段使用。我不建议将此作为第一步。我检查了函数的bash语法,我认为您误解了OP的问题。OP想要的不是调用变量中名为的函数,而是调用已知函数,并将另一个变量中名为的变量的内容传递给它。您提供的答案是对不同问题的正确答案。如果是这样,那么使用
dict
的@chepner answer就是正确答案。无法推荐
eval
。您有一个XY问题,因为您首先尝试将变量名存储为数据。您可能希望使用
dict
,而不是松散的单个变量组合来保存数据。您有一个XY问题,因为您首先尝试将变量名存储为数据。您可能希望使用
dict
,而不是松散的单个变量组合来保存数据。