我的 func1
包含一个变量,我想在 func2
中访问该变量。我尝试在下面的代码中返回 func1
中的变量,然后将变量 "user_name"
设置为函数 "first_name_information"
,但是这个使 func1
运行两次,我不希望发生这种情况。
def func1():
user_name = input("What's your name? ")
if any(char.isdigit() for char in user_name):
print("You can't put a number in your name.")
sys.exit()
else:
pass
return user_name
def func2():
user_name = first_name_information()
last_name = input("What's your last name {}? ".format(user_name))
if any(char.isdigit() for char in last_name):
print("You can't put a number in your last name.")
sys.exit()
else:
pass
最佳答案
您可以通过几种方法来做到这一点,但这可能适合您的情况,您只需从 func2 调用 func1 即可:
def func1():
user_name = input("What's your name? ")
if any(char.isdigit() for char in user_name):
print("You can't put a number in your name.")
sys.exit()
return user_name
def func2():
user_name = func1()
last_name = input("What's your last name {}? ".format(user_name))
if any(char.isdigit() for char in last_name):
print("You can't put a number in your last name.")
sys.exit()
return (user_name, last_name)
func2()
您需要从第二个函数返回并将两个值带回(可能作为元组)。
看起来你正在制作某种游戏,你可能应该使用 class相反,为您的用户存储信息更有意义。
此外,您还专门检查 isdigit()
,但您可以使用 .isalpha()
[docs] 检查整个字符串中的字母字符。
关于python - 如何从 func1 中获取 var1 并在 func2 中使用它而不在 func1 中运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55785333/