937135952 发表于 2021-10-23 14:42:10

python里有没有“穿越函数”这种东西

自学小白,不知道怎么描述这个功能。大概就是想要实现
def f_1():
      .....
      if....:#比如满足某个条件时,触发f_2()改变f_1()里的参数。
         f_2()
         #然后f_2()执行完成之后,这里用一个函数回到f_1()开头,重新执行f_1()



大概就是想实现这样一个功能,求助各位大佬有没有这种函数吖

kogawananari 发表于 2021-10-23 14:53:35

生成器的.send方法不知道能不能符合你的需求

傻眼貓咪 发表于 2021-10-23 14:55:09

{:10_277:}

suchocolate 发表于 2021-10-23 14:55:55

递归有点符合,单递归都是同一个函数。
看你的需求,应该不用“穿越”。
你的需求具体是啥?

傻眼貓咪 发表于 2021-10-23 15:04:43

本帖最后由 傻眼貓咪 于 2021-10-23 15:08 编辑

不明白你想要的,希望我的代码对你有帮助:def A(num):
    if num > 5:
      def B():
            nonlocal num
            num = 5
      B()
      A(num)
    else:
      print(num)

A(123456)5

jackz007 发表于 2021-10-23 15:50:38

本帖最后由 jackz007 于 2021-10-23 15:53 编辑

      穿越不了,只能 "好进好出,有始有终"
def f1(n):
    while True:
      print('n = ' , n)
      if n :
            n -= 1
            f2(n)
      else:
            break

def f2(n):
    print('f2()')

f1(10)

hrpzcf 发表于 2021-10-23 16:48:25

没有。
你想实现的目标有肯定有更好的实现逻辑,很多新手都是上来就问能不能让代码怎么样运行,殊不知他想实现的结果几行代码就搞定了。所以说你问更原始的目标可能有更多答案。

937135952 发表于 2021-10-23 20:37:33

傻眼貓咪 发表于 2021-10-23 15:04
不明白你想要的,希望我的代码对你有帮助:

差不多是这个意思,我明天试试这个思路
页: [1]
查看完整版本: python里有没有“穿越函数”这种东西