所以我有以下要执行的重命名语句:
"RENAME TABLE `my_table` TO `my_table_temp`, `my_new_table` TO `my_table`,
`my_table_temp` TO `my_new_table`"
我想使用此查询创建一个函数,以便将其应用于不同的表。
情况是我正在寻找格式化字符串的最佳可读方式。
选择工具似乎是.format
方法,显然我不想做这样的事情
"RENAME TABLE '{0}' TO '{1}', '{2}' TO '{3}',
'{4}' TO '{5}'".format('my_table','my_table_temp','my_new_table','my_table','my_table_temp','my_new_table')
但我想做的是这样的事情
.format('my_table','my_table_temp','my_new_table')
并以某种方式指出应该用每个字符串替换的数字。 为了清楚起见 - 我不想使用6个参数进行字符串格式化,而只需要3个并使每个参数在字符串中重复两次 所以我正在寻求如何实施这一建议的建议。如果这个问题很愚蠢而且显而易见,我会道歉但是我只是希望将代码风格提升到最高水平,即使在这些细节变得太晚之前我发现自己处于阴沟中,使用Python语言编写糟糕的废话
答案 0 :(得分:2)
In [42]: '{0}, {0}' .format('a')
Out[42]: 'a, a'
In [43]: '{0}, {0}' .format('a', 'b')
Out[43]: 'a, a'
In [44]: '{0}, {1}' .format('a', 'b')
Out[44]: 'a, b'
格式字符串就像这样。所以你只需要这样做: -
"RENAME TABLE '{0}' TO '{1}', '{2}' TO '{0}',\
'{1}' TO '{2}'".format('my_table','my_table_temp',\
'my_new_table','my_table')
>>>
RENAME TABLE 'my_table' TO 'my_table_temp', 'my_new_table' TO 'my_table', 'my_table_temp' TO 'my_new_table'