在python中调用程序
有没有一种方法可以让一个程序调用python中的另一个程序 让我解释一下我的问题:在python中调用程序,python,python-2.7,Python,Python 2.7,有没有一种方法可以让一个程序调用python中的另一个程序 让我解释一下我的问题: 我正在构建一个应用程序(程序1),我还在编写一个调试器来捕获程序1中的异常(程序2){典型的尝试:除了:}代码块。现在我想发布程序2,这样对于任何像Prog1这样的应用程序,Prog2都可以处理异常(使我的工作更容易)。我只想让prog 1使用一段简单的代码,如: import prog2 我的困惑源于这样一个事实:我怎样才能做这样的事情,我怎样才能调用prog1中的prog2,即它应该像prog1中的所有代
import prog2
{try:(prog1),除了:}
prog2 try块注意:我正在使用Python2.7和IDLE作为我的开发工具。尝试过
execfile()
了吗?请仔细阅读如何从脚本中执行另一个脚本。我认为您需要考虑类而不是脚本
这个怎么样
class MyClass:
def __init__(self, t):
self.property = t
self.catchBugs()
def catchBugs(self):
message = self.property
try:
assert message == 'hello'
except AssertionError:
print "String doesn't match expected input"
a = MyClass('hell') # prints 'String doesn't match expected input'
更新
我猜您的目录中有类似的内容:
(主程序)program1.py
(调试器)program2.py
\uuuu init\uuuuu.py
这里我们将把程序1的整个对象传递给程序2的BugCatcher对象。然后我们访问该对象的某些属性,以验证它是否符合我们的预期。这如何使您的工作更轻松?如果捕捉到错误的异常,可能会出现很难跟踪的非常有趣的错误。此外,如果
prog2
中的代码正确地组织到函数中,则只需导入prog2
,然后尝试:prog2.run();除了…
如中所述,我只想将prog 2开发为部门内任何人都可以使用的内部工具。我不希望捕捉到所有类型的异常,但要尽量减少一些一直困扰着我的异常s@mgilson我希望开发Prog1的人不要参与Prog2,而只是把它当作一个工具来使用,即只调用itI。我想问题是,你希望如何处理一个你一无所知的异常?你打算用它做什么?谢谢你的回答,我确实想到了这种方法,但它没有解决这样一个事实,即人们可能有自己的程序1,并且为每个人操作程序2并不能保持检测的一致性嗯,程序2是调试器,对吗?如果是这样,那么您可以将程序2合并到程序1中。或者你想把程序2分开,这样它就可以在其他程序中使用吗?我想把程序2分开,这样它也可以在其他程序中使用(有点像我团队的内部工具)谢谢你的精彩解释,我将试用它,并让您知道在program2导入BugCatcher类MainClass中发生了什么:def uu init uuu(self):self.test()def test():I=1/0;那么,如果我们想让程序1(即调试器)在函数test()中捕获被零除的异常,那么我们将如何在调试器中对其进行编码,以便它在不显式使用test()的情况下捕获异常,我想问的是,我们将如何对调试器进行泛化,以便它能够捕获所有异常,而不考虑其导入的.py文件(它应该适用于所有的.py文件),而无需更改调试器的内容。
from program2 import BugCatcher
class MainClass:
def __init__(self, a):
self.property = a
obj = MainClass('hell')
bugs = BugCatcher(obj)
class BugCatcher(object):
def __init__(self, obj):
self.obj = obj
self.catchBugs()
def catchBugs(self):
obj = self.obj
try:
assert obj.property == 'hello'
except AssertionError:
print 'Error'