You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python跨文件函数调用及返回执行问题:如何从其他文件的函数中调用函数并返回至调用方函数继续执行

问题解答

首先直接给你答案:完全可以! 无参数的return语句就是用来干这个的——当你在store()里执行return时,函数会立刻终止,不会运行后续的购买逻辑,程序流程会直接回到调用它的car()函数里,继续执行store()之后的代码(如果有的话)。

不过我注意到你当前的代码逻辑有个小错误:你把用户选项的逻辑写反了!现在用户选"1"(买东西)的时候反而退出了store(),选"2"(回到车)的时候才执行购买代码,这肯定不是你想要的效果。先给你修正一下代码:

修正后的代码示例

module1.py

from module2 import store

def car():
    # 注意:别用input当变量名,会覆盖Python内置的input()函数
    user_choice = input("Where would you like to drive? 1: Store 2: Park\n")
    if user_choice == "1":
        store()
        # 这里可以加store返回后要执行的逻辑,比如继续和用户交互
        print("Welcome back! What's your next move?")
    elif user_choice == "2":
        print("Parking the car safely.")
    else:
        print("Oops, invalid input! Please enter 1 or 2.")

module2.py

def store():
    # 用循环让用户可以重复操作,直到选择返回车内
    while True:
        action_choice = input("What do you want to do? 1: Buy stuff 2: Go back to the car\n")
        if action_choice == "1":
            # 这里写你的购买逻辑
            print("Picking up some snacks and drinks...")
        elif action_choice == "2":
            print("Heading back to the car now.")
            # 执行return,立刻退出store(),回到car()
            return
        else:
            print("Invalid choice! Please enter 1 or 2.")

更优实现建议

  1. 避免覆盖内置函数:永远不要用inputprint这类Python内置函数名当变量名,会导致后续调用出错。
  2. 添加循环提升交互性:像上面的代码一样用while True循环,让用户可以在商店里重复选择操作,而不是只能选一次。
  3. 处理无效输入:加入对非1/2输入的判断,让程序更健壮,不会因为用户输错就卡住或出错。
  4. 复杂场景的进阶方案:如果你的程序后续会变得更复杂(比如有更多场景:加油站、家等),可以考虑用状态机或者封装成类来管理当前的"状态"(比如当前在车里/商店/公园),这样流程控制会更清晰。但对于你现在的简单需求,用return控制函数退出已经完全足够了。

内容的提问来源于stack exchange,提问作者user19355475

火山引擎 最新活动