2013-05-09 4 views
6

Предположим, что у меня есть два Python функции, функции 1 и Функция 2.Производительность питона при передаче больших данных в качестве параметра функции

Функция 1 будет вызывать Функции 2 и параметр представляет собой большие данные (например, , словарь с 100 тысяч элементов).

мне интересно, если есть какие-либо разница в производительности между вызовом Функция 2 в Функция 1, а это значит, мне нужно передать большой параметр данных и реализации Функция 2 в Функция 1 напрямую, что означает, что мне не нужно передавать большой параметр данных.

Спасибо.

PS: Я думаю, что ключевой вопрос заключается в том, как Python передать параметр, по значению или по ссылке (указатель)?

Редактировать: Кажется, что это путаная проблема. How do I pass a variable by reference? - хороший ответ.

+2

Итак, каковы были результаты, когда вы пробовали оба варианта и приурочили их снова? :) –

+1

Python все проходит по ссылке, поэтому вы должны быть в порядке :-) –

+0

@LevLevitsky Тестирование в порядке, но довольно часто точный ответ на внутреннюю работу предпочтительнее – Basic

ответ

8

Python передает ссылки на объекты по значению. Терминология противоречива и уродлива, но не должно быть реальной разницы в производительности.

Отъезд these answers для всех деталей, которые вы когда-либо захотите (надеюсь).

+0

спасибо за ссылки! – mitchelllc

1

Терминология того, как python «проходит», является порочным дебатом, о котором я не хочу вдаваться. Но то, что фактически передается в стеке, является ссылкой. Таким образом, стоимость одного из ваших вариантов невелика.

Смежные вопросы