Length: Integer;
Length: Integer;
Свойство Length возвращает длину кортежа.
Для выполнения примера предполагается наличие папки с модулями Python «d:\Work\Python\». В папке имеется модуль «sample.py». В модуле реализована следующая функция:
def getSizeOfList(l):
return l.__sizeof__()
Добавьте ссылку на системную сборку Python.
Sub UserProc;
Var
pUtils: IPythonUtils;
pList: IPythonList;
pTuple: IPythonTuple;
Result: Variant;
Begin
pUtils := New PythonUtils.Create;
pUtils.AddFolderToPythonPath("d:\Work\Python\");
//Создание списка
и кортежа
pList := New PythonList.Create(0, "A", Char.Chr(169)); //169-код знака ©
pTuple := New PythonTuple.Create(0, "A", Char.Chr(169)); //169-код знака ©
//Получение информации о списке
Result := pUtils.Invoke("sample", "getSizeOfList", pList);
Debug.WriteLine("Количество элементов в списке: " + pList.Length.ToString);
Debug.WriteLine("Размер занимаемой памяти (байт): " + Result);
//Получение информации о кортеже
Result := pUtils.Invoke("sample", "getSizeOfList", pTuple);
Debug.WriteLine("Количество элементов в списке: " + pTuple.Length.ToString);
Debug.WriteLine("Размер занимаемой памяти (байт): " + Result);
End Sub UserProc;
Imports Prognoz.Platform.Interop.Python;
Public Shared Sub Main(Params: StartParams);
Var
pUtils: IPythonUtils = New PythonUtilsClass();
pList: IPythonList = New PythonListClass();
pTuple: IPythonTuple = New PythonTupleClass();
Result: Object;
Begin
pUtils.AddFolderToPythonPath("d:\Work\Python\");
//Создание списка
и кортежа
pList.Create(0, "A", Char.ConvertFromUtf32(169)); //169-код знака ©
pTuple.Create(0, "A", Char.ConvertFromUtf32(169)); //169-код знака ©
//Получение информации о списке
Result := pUtils.Invoke("sample", "getSizeOfList", pList);
System.Diagnostics.Debug.WriteLine("Количество элементов в списке: " + pList.Length.ToString());
System.Diagnostics.Debug.WriteLine("Размер занимаемой памяти (байт): " + Result);
//Получение информации о кортеже
Result := pUtils.Invoke("sample", "getSizeOfList", pTuple);
System.Diagnostics.Debug.WriteLine("Количество элементов в списке: " + pTuple.Length.ToString());
System.Diagnostics.Debug.WriteLine("Размер занимаемой памяти (байт): " + Result);
End Sub;
При выполнении примера будут созданы объекты, содержащие в себе список и кортеж Python. Каждый из объектов будет передан в функцию getSizeOfList для получения объёма памяти, которую он занимает. Количество элементов в списке и кортеже и объёмы занимаемой памяти будут выведены в консоль среды разработки.
См. также: