Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2007 20:58:21

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Конструкция **kwarg, параметры передаются по значению?

Это нормальное поведение?
То есть изменения сделанные внутри метода недоступны снаружи.



Офлайн

#2 Окт. 21, 2007 22:13:20

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Конструкция **kwarg, параметры передаются по значению?

да



Офлайн

#3 Окт. 22, 2007 13:30:04

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Конструкция **kwarg, параметры передаются по значению?

хотелось бы понять почему

саму проблему решил возвращая необходимый результат



Офлайн

#4 Окт. 22, 2007 14:14:27

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Конструкция **kwarg, параметры передаются по значению?

что именно почему?



Офлайн

#5 Окт. 22, 2007 14:27:07

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Конструкция **kwarg, параметры передаются по значению?

так работает
ведь если я изменяю параметр в функции, переданный не через словарь, то он меняется по ссылке



Офлайн

#6 Окт. 22, 2007 14:28:41

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Конструкция **kwarg, параметры передаются по значению?

А потому что в Питоне все параметры передаются по значению. И это - официальная фича. Если хочешь что-то вернуть - пиши это в return. Не зря же можно возвращать tuple :)



Офлайн

#7 Окт. 22, 2007 14:52:05

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Конструкция **kwarg, параметры передаются по значению?

Pelmen
так работает
ведь если я изменяю параметр в функции, переданный не через словарь, то он меняется по ссылке
>>> def f(arg, **kwargs):
…: for a in arg, kwargs:
…: a.append('tail')
…:
…:

>>> l1 =

>>> l2 =

>>> f(l1, key=l2)

>>> l1
<<<

>>> l2
<<<


всё передается по ссылке, просто immutable объекты ты не поменяешь

P.S. Андрей Светлов прав, лучше явно возвращать ч/з return



Отредактировано (Окт. 22, 2007 14:57:44)

Офлайн

#8 Окт. 22, 2007 19:01:31

Pelmen
От:
Зарегистрирован: 2007-03-31
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Конструкция **kwarg, параметры передаются по значению?

Андрей Светлов
j2a
спасибо



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version