如何从python中导入的函数返回主程序?
我正试图从导入的函数返回主程序。 我的情况是这样的:如何从python中导入的函数返回主程序?,python,function,Python,Function,我正试图从导入的函数返回主程序。 我的情况是这样的: main program || \/ imported function || \/ imported function (2) import pygame, sys from pygame import* def main(): while True: events = pygame.event.get() for event in events:
main program
||
\/
imported function
||
\/
imported function (2)
import pygame, sys
from pygame import*
def main():
while True:
events = pygame.event.get()
for event in events:
if event.type == pygame.MOUSEBUTTONUP:
import function
print('something')
#do stuff
import function2
现在我想从第二个导入的函数返回到主程序
main program <=========\\
|| ||
\/ ||
imported function ||
|| ||
\/ ||
imported function (2) ==//
我的函数如下所示:
main program
||
\/
imported function
||
\/
imported function (2)
import pygame, sys
from pygame import*
def main():
while True:
events = pygame.event.get()
for event in events:
if event.type == pygame.MOUSEBUTTONUP:
import function
print('something')
#do stuff
import function2
我的第二个功能几乎相同:
print('something')
#do stuff
'''
now I want to go back to the main program
'''
我猜你的意思是你在主程序中调用一个函数,它来自于你导入的代码,子例程将执行,然后你在主程序中的代码将继续运行,例如,如果我导入时间库,然后调用一个函数,例如
var = datetime.datetime.today().weekday()
这将返回一个整数,表示一周中的某一天,然后在主程序中调用time子例程的代码将继续运行。要获得更多导入的函数,只需调用它们(第一次回答一个非常抱歉的问题)。如果我理解正确,您不需要做任何额外的事情——当您从外部模块调用函数时,您将恢复执行。这样想吧——每个函数的末尾都有一个隐式的
返回。它又回到哪里去了?所谓的范围。下面是一些代码来演示我的意思:
import sys;
sys.stdout.write('This calls a function in the system module, leaving your main program.')
print('And its back')
输出:
这将调用系统模块中的一个函数,离开主程序
main program <=========\\
|| ||
\/ ||
imported function ||
|| ||
\/ ||
imported function (2) ==//
它的背呢
从模块中调用函数后,主程序将继续执行(如果该函数不sys.exit
)。或者你只是想要一个而不是True
的循环?你必须澄清你的意思。你在写什么样的程序?我在很多业余的文本冒险中看到过这种代码结构,这通常是个坏主意,因为当用户浏览999个房间,Python达到最大递归深度时,整个过程就会崩溃。为什么要直接从“导入的函数2”返回到“主程序”?你能举例说明这些函数是什么吗?通常,如果你想要这样的回报,这表明你选择了一种糟糕的方式来构建你的程序。