检查源代码

时间:2015-06-05 19:14:59

标签: python

如果定义了一个类,是否有一种简单的方法来检查python?即使你知道应该定义类的模块文件.py的位置。

我们说我有这些文件,file1.py,我尝试检查是否在file2.py中定义了Class1。和file3.py,我在那里定义了第二个类Class2。

在file1.py中,我有这段代码:

    try:
        modulePath = os.sep.join([cwd,os.sep.join(factory.split(".")[0:-1])]) + ".py"
        moduleName = factory.split(".")[-2]
        className = factory.split(".")[-1]
        m = imp.load_source(moduleName, modulePath)
        c = getattr(m, className)
    except:
        raise ValueError('Factory Path not correctly specified') 

,其中

 factory = <string as path to the class 1> # for example com.Class1
 cwd = os.getcwd() # i.e. current working directory

在file2.py

```

from . import Class2

Class1(object):
    def __init__(self):
        self.object2 = Class2()
在file3.py

```

Class2(object):
    def __init__(self):
        pass

基本上,由于未安装模块file2.py和file3.py,file1中的代码会引发错误,因为imp无法找到Class2。我尝试了没有相对重要的导演,没有成功......

1 个答案:

答案 0 :(得分:1)

如果您知道类所在的位置并假设包含该类的模块位于python路径中,那么您可以在try: import MyClass #or from my_module import MyClass except ImportError: #raise an exception or log a warning of some sort 块中包装该类的导入

{{1}}