@ru_python

Страница 9159 из 9768
Алексей
27.05.2019
15:38:08
И? Айдишники разные
айдишники - это вроде как числового представления указателя на объект

разные айдишники - значит разные объекты

Mikk
27.05.2019
15:38:41
Алексей
27.05.2019
15:39:08
правда с 0 правда такое не прокатит, потому что у 0 всегда один айдишник, потому то мелкие числа закешированы

Google
Дмитрий
27.05.2019
15:39:31
»> a,b,c=[[]]*3 »> a [] »> a.append(0) »> a [0] »> b [0] »> a = b = c = [] »> a [] »> a.append(0) »> a [0] »> b [0]

Oleksandr
27.05.2019
15:39:49
айдишники - это вроде как числового представления указателя на объект
Я чёт не понимаю, а где тут присвоение по ссылке?

Присвоение по ссылке int a = 1; int b = &a; a = 2; // b is 2 too

Savva
27.05.2019
15:40:37




Алексей
27.05.2019
15:41:02
Я чёт не понимаю, а где тут присвоение по ссылке?
Везде. Любое присвоение и передача в параметры - это передача именно ссылок на объекты, а не самих значений.

Oleksandr
27.05.2019
15:41:05
А в питоне такое не сработает

Присвоение по ссылке int a = 1; int b = &a; a = 2; // b is 2 too

Tishka17
27.05.2019
15:41:36
может там пробел где-то?

в конце, например

Алексей
27.05.2019
15:42:22
А в питоне такое не сработает
не сработает, потому что 1) в питоне нет операции &a 2) int в питоне - это совсем не тоже самое, что и int в C/C++

Oleksandr
27.05.2019
15:43:00
не сработает, потому что 1) в питоне нет операции &a 2) int в питоне - это совсем не тоже самое, что и int в C/C++
Я тебе аналогию делаю что такое присвоение по ссылке, ты не понимаешь?

Google
Дмитрий
27.05.2019
15:43:37
грубо говоря

Дмитрий
27.05.2019
15:43:54
см выше мой пример

polunin.ai???
27.05.2019
15:44:01
Строки неизменяемые типы, то есть во втором случае в переменную b запишется адрес, куда ссылается и переменная a.

Дмитрий
27.05.2019
15:44:04
с мутабельными типами данных

Savva
27.05.2019
15:44:24
может там пробел где-то?
сейчас посмотрю, спасибо за наводку

Mikk
27.05.2019
15:44:44
ладно, ладно, я напишу две запятых и два нуля, всё

Алексей
27.05.2019
15:44:45
Я тебе аналогию делаю что такое присвоение по ссылке, ты не понимаешь?
Речь изначально не шла про присвоение по ссылке/не по ссылке, а про копирование/не копирование. И копирования самих объектов нет.

Tishka17
27.05.2019
15:44:51
сейчас посмотрю, спасибо за наводку
а ещё я не знаю как оно работает с нормализацией юникода

polunin.ai???
27.05.2019
15:45:23
А ещё "массив строк". Это что такое?

Может быть список?

Ivan
27.05.2019
15:45:48
как в джанго сделать напоминание на страничке? у меня есть параметры в модуле дата-тайм и текст, как сделать, что бы на страничке выскокавало окно с напоминанием, и пока на него не нажмеш оно висело, даже после перезагрузки?

polunin.ai???
27.05.2019
15:46:37
['a', 'b', 'c']
Там каждый следующий элемент создаётся новый, в независимости от содержимого. А в случае переменных они могут ссылаться на один участок памяти.

Oleksandr
27.05.2019
15:49:04
Речь изначально не шла про присвоение по ссылке/не по ссылке, а про копирование/не копирование. И копирования самих объектов нет.
Это да. Копируются указатели на эти обьекты. Но почему когда я гуглю, везде говорят, что в пайтоне присваивание по значению? Мне интересует терминология

Oleksandr
27.05.2019
15:51:05
это где говорят?
https://stackoverflow.com/questions/9696495/python-when-is-a-variable-passed-by-reference-and-when-by-value Я человек простой. Гуглю python assignment by reference or value

Алексей
27.05.2019
15:51:56
https://stackoverflow.com/questions/9696495/python-when-is-a-variable-passed-by-reference-and-when-by-value Я человек простой. Гуглю python assignment by reference or value
Everything in Python is passed and assigned by value, in the same way that everything is passed and assigned by value in Java. Every value in Python is a reference (pointer) to an object.

Те же яйца, только в профиль.

Google
Tishka17
27.05.2019
15:52:42
lol

указатели передаются по значению, ага

Oleksandr
27.05.2019
15:53:01
Everything in Python is passed and assigned by value, in the same way that everything is passed and assigned by value in Java. Every value in Python is a reference (pointer) to an object.
Успокойся, я понимаю как работает присваивание в пайтоне. Я не понимаю почему это называют присваиванием по ссылке

Или по значению

И почему эта терминология такая есть?

Алексей
27.05.2019
15:53:21
потому что это не присваивание, а передача (pass)

и передача фактически идёт по ссылке

что-то типа void func(object& obj);

Oleksandr
27.05.2019
15:54:11
и передача фактически идёт по ссылке
В чём разница передачи по значению и передачи по ссылке?

koder
27.05.2019
15:54:17
Everything in Python is passed and assigned by value, in the same way that everything is passed and assigned by value in Java. Every value in Python is a reference (pointer) to an object.
это ооочень тупое утверждение. По определению это передача по ссылке, независимо от того есть ли я зыке явные ссулки или нет

Алексей
27.05.2019
15:54:39
но вообще кстати да, такое обычно называют передачей по ссылке

koder
27.05.2019
15:54:46
В чём разница передачи по значению и передачи по ссылке?
по ссылке - данные не копируются и ты можешь (если ссылка не константна) обновить объект который тебе передали

Oleksandr
27.05.2019
15:55:14
Алексей
27.05.2019
15:55:41
Обнови в пайтоне обьект, который тебе передали a = 123512234 b = a
ты не можешь обновить число, оно иммутабельно

Дмитрий
27.05.2019
15:55:47
Обнови в пайтоне обьект, который тебе передали a = 123512234 b = a
есть мутабельные обхекты и не мутабельные

числа, строки и туплы не мутабельны

Алексей
27.05.2019
15:56:00
любые операции с числом создадут новое число

Дмитрий
27.05.2019
15:56:02
их "обвноление" = создание нового

а не запись в ту же область памяти нового значения

koder
27.05.2019
15:56:26
Обнови в пайтоне обьект, который тебе передали a = 123512234 b = a
ты обновил локальную переменную, а не оригинальный объккт

Google
Алексей
27.05.2019
15:56:40
но, с помощью функции id всё равно можно заметить именно передачу по ссылке, а не по значению

koder
27.05.2019
15:56:50
есть мутабельные обхекты и не мутабельные
дело не в мутабельности. присваивание только меняет на что указывает локальная переменная, но не трогает исходный объект

Admin
ERROR: S client not available

Алексей
27.05.2019
15:57:33
а? переведи
ну я даже кусок кода скинул

где два одинаковых числа имели разные айдишники

потому что фактически были разными объектами, лежащими по разным адресам

koder
27.05.2019
15:58:18
я тебя все еще не понимаю. да, чила больше 1024 в питоне будут иметь разын id

даже если числа разные

смотря как они создавались

Алексей
27.05.2019
15:58:30
и присвоение переменными туда сюда не поменяют айдишник

koder
27.05.2019
15:58:43
но как функция id позволит тебе что-то по ссылке передать

Алексей
27.05.2019
15:58:46
что доказывает передачу по ссылке

даже иммутабельных объектов

koder
27.05.2019
15:59:11
а, сори, я неправильно прочитал

Oleksandr
27.05.2019
15:59:16
Всё, понял, спасибо

Дмитрий
27.05.2019
15:59:24
»> a = b = c = 'a' »> a += 'q' »> a 'aq' »> b 'a' »> a = b = c = [] »> a.append(1) »> a [1] »> b [1] »>

koder
27.05.2019
15:59:24
да, через id можно проверить на что ссылается переменная

Tishka17
27.05.2019
15:59:38
В чём разница передачи по значению и передачи по ссылке?
потому что всем пофиг на разницу между указателем и ссылкой. Идея в том, что данные не копируются

Google
Алексей
27.05.2019
16:00:47
»> a = b = c = 'a' »> a += 'q' »> a 'aq' »> b 'a' »> a = b = c = [] »> a.append(1) »> a [1] »> b [1] »>
строки и числа иммутабельные, а значит += их не изменит (их ничто не изменит)

koder
27.05.2019
16:00:54
я там дописал, что в зависимости от способа создания. Но да, если сделать a =b, то id всегда будут одинаковые, независимо от того что в a юыло

koder
27.05.2019
16:01:32
строки и числа иммутабельные, а значит += их не изменит (их ничто не изменит)
почти да, но есть одна хитрость - начиная с 2.X строка обновляется inplace при += если у нее счетчик ссылок == 1

koder
27.05.2019
16:01:51
не только.
когда еще?

koder
27.05.2019
16:02:21
нифига

Tishka17
27.05.2019
16:02:32
ну снаружи - да

koder
27.05.2019
16:02:34
ассимптотика другая

Tishka17
27.05.2019
16:02:41
это да

я имею ввиду, работает так же

Страница 9159 из 9768