def func(bar):
my_dict = {
'query1': 'select * from table1',
'query2': 'select * from table2'
}
my_dict[bar]
func('query1')
我的问题是不my_dict执行查询和保存或仅根据酒吧变量执行查询了解蟒蛇字典内存分配
def func(bar):
my_dict = {
'query1': 'select * from table1',
'query2': 'select * from table2'
}
my_dict[bar]
func('query1')
我的问题是不my_dict执行查询和保存或仅根据酒吧变量执行查询了解蟒蛇字典内存分配
在这种特定情况下,根本不执行任何查询。它只是str
这意味着他们实际上什么都不做。
让我们试着详细说明2个其他情况。假设你有一个功能execute_query
了执行给定的参数的查询:
def func(query):
my_dict = {
'query1': execute_query('select * from table1'),
'query2': execute_query('select * from table2'),
}
return my_dict[query]
func('query1')
在这种情况下,这两个查询将被执行,因为Python解释器将分析字典组成。另一方面,如果你有一个参考这个函数,它不会调用该函数。例如:
def do_query1():
return execute_query('select * from table1')
def do_query2():
return execute_query('select * from table2')
def func(query):
my_dict = {
'query1': do_query1,
'query2': do_query2,
}
return my_dict[query]() # <-- appropriate function will be call here
func('query1')
你是什么意思的“执行”?使用你的代码,唯一可能发生的事情是,如果'bar'是同一个字典中的一个键,那么你可以引用'my_dict'的值... – nbro