У меня есть python имя модуля message.py
#!/usr/bin/env python3
class TestClass1(object):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def print_args1(self):
print ("Inside print_args1")
print (self.arg1, self.arg2)
class TestClass2(object):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def print_args2(self):
print ("Inside print_args2")
#print (arg1, arg2)
print (self.arg1, self.arg2)
Как мне импортировать это сообщение в мой скрипт робота. И как я могу создать объекты этих двух классов и вызвать их соответствующий метод экземпляра в рамках робота. Имя моего модуля (message.py) не совпадает с определенным именем класса внутри модуля.
Я могу импортировать и использовать в другом файле python.
#!/usr/bin/env python3
import message
obj1 = message.TestClass1(10,20)
obj2 = message.TestClass2(30,40)
obj1.print_args()
obj2.print_args2()
Невозможно импортировать и создавать объекты внутри моего скрипта робота. В скрипте робота в таблице настроек
*** Settings ***
Library message.py
Как мы можем создавать объекты TestClass1 и TestClass2 в скрипте робота. и вызвать их метод, используя эти объекты.
Я могу определить функцию python в файле python, который возвращает мне дескриптор объекта. Возможность вызывать эту функцию Python в роботе и использовать этот объект может вызывать их метод.
Ниже приведен код
ef newFun(arg1,arg2):
return TestClass1(arg1,arg2)
def newFun2(arg1,arg2):
return TestClass2(arg1,arg2)
=================
The above two functions newFun and newFun2 I created in python file and calling these function from robot script. This will return me TestClass1 and TestClass2 handle .
Then we can call their method print_args1 and print_args2 from robot using these objects.
Robot code is as below.
======================>>>>hello.robot
*** Settings ***
Library message.py
*** Variables ***
*** Keywords ***
Create TestClass1 Object
${object1} = newFun 10 20
[Return] ${object1}
*** Test Cases ***
First TestCase with TestClass1 object
LOG Instantiate TestClass1 Object console=yes
${instance} Create TestClass1 Object
LOG ${instance}
LOG Calling print_args1 function using TestClass1 Object console=yes
Call Method ${instance} print_args1
Теперь вместо создания этих объектов с помощью функции python (в например, newFun и newFun2). Есть ли способ динамического создания объектов непосредственно в скрипте робота.