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