Python: передача URL через переменную не работает
Ниже приведен код на python для подключения к HP QC ALM, и он работает должным образом, когда значения жестко закодированы:
from win32com.client import Dispatch
class QC_ConnectorClass(object):
def __init__(self):
print("class init")
def ConnectToQC(self):
#HP QC OTA methods
self.TD = Dispatch("TDApiOle80.TDConnection.1")
self.TD.InitConnectionEx("http://hpqcurl.org")
self.TD.Login("UName","Pwd")
self.TD.Connect("Domain","project")
if self.TD.Connected == True:
print("Logged in")
self.TD.Logout();
print("Logged out")
self.TD.ReleaseConnection();
else:
print("Login failed")
При передаче hp qc url в переменную вроде
hpQCURL="http://hpqcurl.org"
и передайте переменную следующим образом:
self.TD.InitConnectionEx(hpQCURL)
Я получаю следующую ошибку:
File "<COMObject TDApiOle80.TDConnection.1>", line 2, in InitConnectionEx
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147023174), None)
1 ответ
Решение
from win32com.client import Dispatch class QC_ConnectorClass(object): var = "http://hpqcurl.org" def __init__(self): print("class init") def ConnectToQC(self): #HP QC OTA methods self.TD = Dispatch("TDApiOle80.TDConnection.1") self.TD.InitConnectionEx(QC_ConnectorClass.var) self.TD.Login("UName","Pwd") self.TD.Connect("Domain","project") if self.TD.Connected == True: print("Logged in") self.TD.Logout(); print("Logged out") self.TD.ReleaseConnection(); else: print("Login failed")
Сработало для меня, но вы также можете инициализировать переменную глобально вне области класса. В этом случае я определил статическую переменную, поэтому мне нужно вызвать ее следующим образом: QC_ConnectorClass.var Но взгляните на этот ответ, чтобы понять важность позиции инициализации ( правильный способ определения переменных класса в Python)