如何在不执行signup函数的情况下获取其中phone变量的值
解决方案
首先明确:不执行signup函数的话,函数内部的phone局部变量不会被创建,自然无法直接获取它的实际值——因为phone的值来自用户输入,必须执行对应的input语句才能拿到输入内容。
要实现“不执行整个signup函数但获取phone值”,可以通过重构代码拆分逻辑:
- 把获取手机号的逻辑单独抽成独立函数,这样无需运行整个
signup流程,仅调用这个小函数就能拿到手机号:
# 新增独立的手机号获取函数 def get_phone(): return int(input('enter phone number : ')) def signup(): n = input('enter name : ') db = input('enter date of birth : ') phone = get_phone() # 调用独立函数获取手机号 ad = input('enter address : ') password = input('enter password : ') accnt = input('enter account no : ') val = (accnt, n, password, db, ad, phone) print(val) # 无需执行signup,直接获取手机号 phone_number = get_phone()
如果无法修改原代码,那只能通过解析代码语法树(AST)提取phone对应的输入提示文本,但无法获取实际的用户输入值——因为输入必须依赖input函数的执行。
内容的提问来源于stack exchange,提问作者Guru
相关产品推荐
相关产品推荐

