GetAttr(AttrName: String): Variant;
GetAttr(AttrName: String): Object;
AttrName. Наименование аргумента класса. Наименование является регистрозависимым.
Метод GetAttr получает значение аргумента с указанным наименованием у экземпляра класса.
Если у экземпляра класса не существует аргумента с наименованием AttrName, то генерируется исключительная ситуация.
Для выполнения примера предполагается наличие папки с модулями Python «d:\Work\Python\». В папке имеется модуль «sample.py». В модуле реализован следующий класс:
class Door:
def __init__(self, color, height, width):
self.color = color
self.height = height
self.width = width
def getDoorDescription(self, comment):
return comment + ". Цвет: " + self.color + " Размеры: " + str(self.height) + "X" + str(self.width) + " мм."
Добавьте ссылку на системную сборку Python.
Sub UserProc;
Var
pUtils: IPythonUtils;
pObj: IPythonClassObject;
Result: Variant;
Begin
pUtils := New PythonUtils.Create;
pUtils.AddFolderToPythonPath("d:\Work\Python\");
//Создание объекта класса Door
pObj := New PythonClassObject.Create("sample", "Door", "Red", 2000, 800);
//Получить значение атрибута color
Result := pObj.GetAttr("color");
Debug.WriteLine(Result);
//Изменить значение атрибута color
pObj.SetAttr("color", "White");
//Выполнить функцию экземпляра класса
Result := pObj.Invoke("getDoorDescription", "Межкомнатная дверь");
Debug.WriteLine(Result);
End Sub UserProc;
Imports Prognoz.Platform.Interop.Python;
Public Shared Sub Main(Params: StartParams);
Var
pUtils: IPythonUtils = New PythonUtilsClass();
pObj: IPythonClassObject = New PythonClassObjectClass();
Result: Object;
Begin
pUtils.AddFolderToPythonPath("d:\Work\Python\");
//Создание объекта класса Door
pObj.Create("sample", "Door", "Red", 2000, 800);
//Получить значение атрибута color
Result := pObj.GetAttr("color");
System.Diagnostics.Debug.WriteLine(Result);
//Изменить значение атрибута color
pObj.SetAttr("color", "White");
//Выполнить функцию экземпляра класса
Result := pObj.Invoke("getDoorDescription", "Межкомнатная дверь");
System.Diagnostics.Debug.WriteLine(Result);
End Sub;
При запуске примера выполняются следующие действия:
Создаётся экземпляр класса Door. В конструктор передаются значения параметров, которые будут присвоены атрибутам.
У созданного объекта будет получено значение атрибута «color». Значение будет выведено в консоль среды разработки.
Для атрибута «color» будет задано новое значение.
Будет выполнена функция экземпляра класса «getDoorDescription», полученный результат будет выведен в консоль среды разработки.
См. также: