Есть ли простой способ проверить python, если класс определен? Даже если вам известно расположение файла модуля .py, где должен быть определен класс.Проверить, существует ли класс python в исходном коде
Предположим, что у меня есть эти файлы file1.py, где я пытаюсь проверить, определен ли Class1 в файле file2.py. И 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 вызовет ошибку, как чертенок не может найти Class2. Я пытался с и без относительного импорта без успеха ...
Не могли бы вы объяснить, что вы имеете в виду? У вас есть два файла python? Тот, который содержит классы (ы), которые вы хотите проверить, существует? – Kris
как не установлен не установлен? –
, вероятно, не нравится путь, который вы пытаетесь дать. Попробуйте использовать 'os.path.abspath (". ")' Для значения 'cwd' – Tommy