如何在python中的字符串中插入全局变量和局部变量

时间:2017-07-18 06:12:34

标签: python global-variables local-variables

我想创建一个字符串,我想同时替换全局变量和局部变量。下面显示的代码给出了一个错误。 (KeyError:'表')

TABLE = my_table
def get_data():
    data_size = 10
    print "get %(data_size)s rows from the table %(TABLE)s" %locals() %globals()

我希望代码打印以下内容:

get 10 rows from the table my_table

有谁知道如何实现这一目标?提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果您想要像现在一样使用格式字符串,则需要将完全映射指定为字典,如下所示:

mapping = {'data_size' : locals()['data_size'], 'TABLE' : globals()['TABLE']}

或者更简单地说,

mapping = {'data_size' : data_size, 'TABLE' : TABLE}

现在,将映射传递给字符串,如下所示:

print "get %(data_size)s rows from the table %(TABLE)s" % mapping

这将给你get 10 rows from the table my_table

您收到的TypeError是因为%(...)s期望相同的键:值映射以传递给字符串的格式args指定。

答案 1 :(得分:0)

你需要像这样打印:

TABLE = "my_table"
def get_data():
    data_size = 10
    print "get %s rows from the table %s"%(data_size, TABLE)

输出:

  

从表my_table获取10行