Add(Value: Variant);
Add(Value: Object);
Value. Значение, добавляемое во множество.
Метод Add добавляет указанное значение во множество.
Если во множестве уже существует элемент с указанным значением, но новый элемент не добавляется.
Для выполнения примера предполагается наличие папки с модулями Python «d:\Work\Python\». В папке имеется модуль «sample.py». В модуле реализована следующая функция:
def unionSets(set1, set2):
return set.union(set1, set2)
Добавьте ссылку на системную сборку Python.
Sub UserProc;
Var
pUtils: IPythonUtils;
pSet1, pSet2, pSet3: IPythonSet;
Result, v: Variant;
Arr: Array;
Begin
pUtils := New PythonUtils.Create;
pUtils.AddFolderToPythonPath("d:\Work\Python\");
// Создание множеств
pSet1 := New PythonSet.Create("A", "B", "C");
Debug.WriteLine("Set 1: " + pSet1.Length.ToString);
pSet2 := New PythonSet.Create("B", "C", "D");
Debug.WriteLine("Set 2: " + pSet2.Length.ToString);
// Вызов функции для объединения множеств
Result := pUtils.Invoke("sample", "unionSets", pSet1, pSet2);
// Создание множества из результата работы функции unionSets
pSet3 := New PythonSet.Create(Result);
pSet3.Add("E");
pSet3.Pop;
Debug.WriteLine("Set 3: " + pSet3.Length.ToString);
Arr := pSet3.ToArray;
For Each v In Arr Do
Debug.Write(v + " ");
End For;
Debug.WriteLine("");
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Python;
Public Shared Sub Main(Params: StartParams);
Var
RunContext: ForeRuntimeContext;
pUtils: IPythonUtils = New PythonUtilsClass();
pSet1, pSet2, pSet3: IPythonSet = New PythonSetClass();
Result, v: Object;
Arr: Array;
Begin
RunContext := (Params.Metabase As IForeServices).GetRuntime().Context;
pUtils.AddFolderToPythonPath("d:\Work\Python\");
// Создание множеств
pSet1.Create("A", "B", "C");
System.Diagnostics.Debug.WriteLine("Set 1: " + pSet1.Length.ToString());
pSet2.Create("B", "C", "D");
System.Diagnostics.Debug.WriteLine("Set 2: " + pSet2.Length.ToString());
// Вызов функции для объединения множеств
Result := pUtils.Invoke(RunContext, "sample", "unionSets", pSet1, pSet2);
// Создание множества из результата работы функции unionSets
pSet3.Create(Result);
pSet3.Add("E");
pSet3.Pop();
System.Diagnostics.Debug.WriteLine("Set 3: " + pSet3.Length.ToString());
Arr := pSet3.ToArray();
For Each v In Arr Do
System.Diagnostics.Debug.Write(v + " ");
End For;
System.Diagnostics.Debug.WriteLine("");
End Sub;
При выполнении примера будут созданы два объекта, представляющие собой множества Python. Данные множества будут переданы в функцию unionSets для объединения. В полученное множество будет добавлен ещё один элемент и удалён первый элемент. После этого сформированное множество будет преобразовано в массив, элементы массива будут выведены консоль среды разработки.
См. также: