Вопрос в заголовке. I try to wrap c++ code to python, which has nested structs (struct definitions inside another struct definition), and the inner struct doesn't appear in my python module (albeit I want it to appear).
I consulted the Swig documentation (version 4.3, 6.27 Nested classes), and it says:
If the target language doesn't support Вложенные классы непосредственно, или поддержка не внедряется в языковом модуле (как в настоящее время для Python), тогда видимые вложенные классы перемещаются в
То же пространство имени, что и содержащий класс (иерархия гнездования «сплющивается»). < /p>
< /blockquote>
для меня. неправильный? Если да, то что мне нужно сделать по -другому?
или это ожидаемое поведение? Если да, то что мне нужно сделать, чтобы сделать внутреннюю структуру видимой?struct TestA {
double memberA1;
double memberA2;
struct TestB {
double memberB1;
double memberB2;
};
};
struct TestC {
double memberC1;
double memberC2;
};
< /code>
и мой файл интерфейса выглядит так: < /p>
%module test
%{
#include "test-Swig.h"
%}
%include "test-Swig.h"
< /code>
Из того, что я прочитал в документации, я ожидаю, что у меня будет доступ к Testa, Testb и Testc, которые все появляются в одном и том же прицеле в Python. Вместо этого появляются и могут использоваться Testa и Testc, но TestB отсутствует. < /P>
Полученный файл test.py, созданный SWig действительно содержит классы A и C, но он не содержит класса b. < /P>
Минимальный код питона, пытаясь использовать класс Bfrom build import test
test_class_b = test.TestB()
< /code>
дает ошибку: < /p>
e attributeerror: module 'build.test' не имеет атрибута 'testb'. Вы имели в виду: 'testa'?
Подробнее здесь: https://stackoverflow.com/questions/795 ... ython-code
Способен ли SWIG обернуть вложенные противопоставки при упаковке для создания кода Python? ⇐ C++
Программы на C++. Форум разработчиков
1744945684
Anonymous
Вопрос в заголовке. I try to wrap c++ code to python, which has nested structs (struct definitions inside another struct definition), and the inner struct doesn't appear in my python module (albeit I want it to appear).
I consulted the Swig documentation (version 4.3, 6.27 Nested classes), and it says:
If the target language doesn't support Вложенные классы непосредственно, или поддержка не внедряется в языковом модуле (как в настоящее время для Python), тогда видимые вложенные классы перемещаются в
То же пространство имени, что и содержащий класс (иерархия гнездования «сплющивается»). < /p>
< /blockquote>
для меня. неправильный? Если да, то что мне нужно сделать по -другому?
или это ожидаемое поведение? Если да, то что мне нужно сделать, чтобы сделать внутреннюю структуру видимой?struct TestA {
double memberA1;
double memberA2;
struct TestB {
double memberB1;
double memberB2;
};
};
struct TestC {
double memberC1;
double memberC2;
};
< /code>
и мой файл интерфейса выглядит так: < /p>
%module test
%{
#include "test-Swig.h"
%}
%include "test-Swig.h"
< /code>
Из того, что я прочитал в документации, я ожидаю, что у меня будет доступ к Testa, Testb и Testc, которые все появляются в одном и том же прицеле в Python. Вместо этого появляются и могут использоваться Testa и Testc, но TestB отсутствует. < /P>
Полученный файл test.py, созданный SWig действительно содержит классы A и C, но он не содержит класса b. < /P>
Минимальный код питона, пытаясь использовать класс Bfrom build import test
test_class_b = test.TestB()
< /code>
дает ошибку: < /p>
e attributeerror: module 'build.test' не имеет атрибута 'testb'. Вы имели в виду: 'testa'?
Подробнее здесь: [url]https://stackoverflow.com/questions/79579122/is-swig-able-to-wrap-nested-structs-when-wrapping-to-produce-python-code[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия