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)

Другие вопросы по тегам