我编写了一个使用全局变量作为模板的函数,该函数使用该模板初始化临时变量并返回初始化值:
INTENT_TAG = "intent"
FREE_TEXT_TAG = "free_text"
USER_QUESTION_TAG = "userQuestion"
AI_RESPONSE = "aiResponse"
INTENT_TEMPLATE = {INTENT_TAG:"",FREE_TEXT_TAG:{USER_QUESTION_TAG:"", AI_RESPONSE : ""}}
def parse_intent_to_json(intent_type, user_chatter, ai_chatter):
print(INTENT_TEMPLATE)
temp_intent = INTENT_TEMPLATE
temp_intent[INTENT_TAG] = intent_type
temp_intent[FREE_TEXT_TAG][USER_QUESTION_TAG] = user_chatter
temp_intent[FREE_TEXT_TAG][AI_RESPONSE] = ai_chatter
return temp_intent
parse_intent_to_json(0,0,0)
parse_intent_to_json(1,1,1)
parse_intent_to_json(2,2,2)
此函数的输出为:
{'free_text': {'aiResponse': '', 'userQuestion': ''}, 'intent': ''}
{'free_text': {'aiResponse': 0, 'userQuestion': 0}, 'intent': 0}
{'free_text': {'aiResponse': 1, 'userQuestion': 1}, 'intent': 1}
我希望是
{'free_text': {'aiResponse': '', 'userQuestion': ''}, 'intent': ''}
{'free_text': {'aiResponse': '', 'userQuestion': ''}, 'intent': ''}
{'free_text': {'aiResponse': '', 'userQuestion': ''}, 'intent': ''}
,因为未对 INTENT_TEMPLATE 变量进行任何分配。 知道为什么会这样吗?