我试图从if语句中的另一个文件返回(执行)一个函数。 我已经读过返回语句不起作用,我希望有人知道什么语句可以让我调用外部函数。
该函数创建一个沙箱,但如果存在,我想传递if语句。
这是我用过的一小段代码。
import mks_function
from mksfunction import mks_create_sandbox
import sys, os, time
import os.path
if not os.path.exists('home/build/test/new_sandbox/project.pj'):
return mks_create_sandbox()
else:
print pass
答案 0 :(得分:5)
假设您的函数bar
位于Python路径上名为foo.py的文件中。
如果foo.py包含:
def bar():
return True
然后你可以这样做:
from foo import bar
if bar():
print "bar() is True!"
答案 1 :(得分:2)
让我们看看what docs say:
return
可能只在语法上嵌套在函数定义中,而不是嵌套类定义中。
你想做什么,我猜是:
from mksfunction import mks_create_sandbox
import os.path
if not os.path.exists('home/build/test/new_sandbox/project.pj'):
mks_create_sandbox()
答案 2 :(得分:2)
最近,我正在研究python中的最终项目。我也会参与你的外部函数文件。
如果你正在调用一个模块(实际上,同一个文件之外的任何函数都可以被视为一个模块,我讨厌指定太精确的东西),你需要确定一些东西。这是一个模块的例子,我们称之为my_module.py
# Example python module
import sys
# Any other imports... imports should always be first
# Some classes, functions, whatever...
# This is your meat and potatos
# Now we'll define a main function
def main():
# This is the code that runs when you are running this module alone
print sys.platform
# This checks whether this file is being run as the main script
# or if its being run from another script
if __name__ == '__main__':
main()
# Another script running this script (ie, in an import) would use it's own
# filename as the value of __name__
现在我想在另一个文件中调用整个函数,名为work.py
import my_module
x = my_module
x.main()
答案 3 :(得分:1)
你可能需要import
包含该函数的模块,不是吗?
当然,对于你想要达到的目标更加准确一点会有所帮助。
答案 4 :(得分:1)
你的意思是“退货声明不起作用”?
您可以import
来自其他文件的函数,并将其称为本地函数。
答案 5 :(得分:0)
这取决于你的意思。如果你想创建一个静态方法,那么你会做类似
的事情class fubar(object):
@classmethod
def foo():
return bar
fubar.foo() # returns bar
如果您想运行外部流程,那么您将使用subprocess库并执行
import subprocess
subprocess.popen("cmd echo 'test'",shell=true)
真的取决于你想做什么
答案 6 :(得分:0)
你的意思是import
?比如说,你的外部函数存在于同一目录下的mymodule.py中,你必须先导入它:
import mymodule
# or
from mymodule import myfunction
然后直接使用该功能:
if mymodule.myfunction() == "abc":
# do something
或第二次导入:
if myfunction() == "abc":
# do something
请参阅this tutorial。
答案 7 :(得分:-1)
file1.py(注释掉2个版本)
#version 1
from file2 import outsidefunction
print (outsidefunction(3))
#version 2
import file2
print (file2.outsidefunction(3))
#version 3
from file2 import *
print (outsidefunction(3))
file2.py
def outsidefunction(num):
return num * 2
命令行:python file1.py