Повышение. Python - Как возвратиться ссылкой?

Можно использовать cat (связывают) функцию для этого. Это берет аргумент ключевого слова dims, который позволяет Вам указывать размер, вдоль которого требуется конкатенировать.

julia> A = rand(2,3,4,5);

julia> B = rand(2,3,6,5);

julia> C = cat(A, B, dims=3);

julia> size(C)
(2, 3, 10, 5)

можно узнать больше об эти cat функция путем ввода ?cat в Julia REPL.

11
задан mandrake 15 October 2009 в 13:51
поделиться

4 ответа

В Python есть концепция неизменных типов . Неизмеренный тип не может иметь его значение изменилось. Примеры встроенных неизменных типов int, float и ул.

Сказав, что вы не можете делать то, что вы хотите с Boost :: Python , потому что сам Python не позволяет вам изменить значение поплавка, возвращаемого функцией.

Ваш второй пример показывает одно решение, другое было бы создание тонконапорных и выставляющих, что:

void Foo_set_x(Foo& self, float value) {
    self.get() = value;
}

class_<Foo>("Foo", init<float>())
    ...
    .def("set", &Foo_set_x);
;

, который является лучшим решением, чем для изменения исходного класса C ++.

7
ответ дан 3 December 2019 в 10:04
поделиться

Вы уверены, что объект c ++ копируется? Каждый раз вы будете получать новый объект python, но который ссылается на один и тот же объект C ++. Как вы определяете, что объект был скопирован?

0
ответ дан 3 December 2019 в 10:04
поделиться

Я мало что знаю о Boost.Python, поэтому могу неправильно понять вопрос, и в этом случае это совершенно бесполезно. Но вот что:

В Python вы не можете выбирать между возвратом по ссылке или по значению, различие в Python не имеет смысла. Я считаю, что легче всего думать об этом как о том, что все обрабатывается по ссылке.

У вас есть просто объекты, и у вас есть имена для этих объектов. Итак

foo = "ryiuy"

Создает строковый объект «ryiuy», а затем позволяет вам ссылаться на этот строковый объект с именем «foo». Итак, в Python, когда вы что-то передаете, вы передаете этот объект. Не существует "значений" как таковых, поэтому вы не можете передать значение. Но опять же, это также верная точка зрения, что здесь тоже нет ссылок, только объекты и их имена.

Итак, ответ таков: Я предполагаю, что когда вы получаете ссылку на C, вам нужно передать ссылку на объект, который ссылается на Python. И когда вы получаете значение в C, вам необходимо передать ссылку на объект, который вы создаете из этого значения, в Python.

0
ответ дан 3 December 2019 в 10:04
поделиться
[

] Я думаю, вы хотите [] вернуть внутреннюю ссылку [] вместо этого. Я использовал ее раньше, чтобы сделать нечто подобное. [

] [

]Редактирование: []Последняя док[] [

]
3
ответ дан 3 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: