Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查源代码中是否定义了python类_Python - Fatal编程技术网

检查源代码中是否定义了python类

检查源代码中是否定义了python类,python,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" modul

如果定义了类,是否有一种简单的方法来检查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') 
在哪里

在file3.py中

```


基本上,由于没有安装模块file2.py和file3.py,file1中的代码会引发一个错误,因为imp找不到Class2。我尝试过使用和不使用相对导入,但都没有成功…

如果您知道类驻留的位置,并且假设包含该类的模块位于python路径中,那么您可以将该类的导入包装在
try
块中

try:
    import MyClass
    #or
    from my_module import MyClass
except ImportError:
    #raise an exception or log a warning of some sort

你能解释一下你的意思吗?你有两个python文件吗?一个包含要检查存在的类的类?如何不安装imp?可能不喜欢您尝试为其提供的路径。尝试使用
os.path.abspath(“.”)作为
cwd
值,并将
except
更改为
Exception,e:
以捕获实际错误,以便更好地了解发生了什么
from . import Class2

Class1(object):
    def __init__(self):
        self.object2 = Class2()
Class2(object):
    def __init__(self):
        pass
try:
    import MyClass
    #or
    from my_module import MyClass
except ImportError:
    #raise an exception or log a warning of some sort