Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 20, 2015 10:09:39

droft1312
Зарегистрирован: 2015-01-17
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

Зачем вообще нужны константы? Я знаю, что они неизменяемы, но в чем их практическая суть?В каких случаях их нужно использовать?
P.S: только начинаю изучать python, поэтому и задаю такие глупые вопросы) в гугле ответа не нашел.

Офлайн

#2 Янв. 20, 2015 11:40:25

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

droft1312
в питоне нет констант по аналогии с С/С++ и т.п. Есть переменные. Поэтому о чем вопрос не понятно.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Янв. 20, 2015 11:46:13

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

JOHN_16
а кортеж?



————————————————
-*- Simple is better than complex -*-

Офлайн

#4 Янв. 20, 2015 12:01:38

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

terabayt
Константа (из вики) - способ адресации данных, изменение которых рассматриваемой программой не предполагается или запрещается.
А данные внутри кортежа могут меняться.

Офлайн

#5 Янв. 20, 2015 12:11:55

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

GreyZmeem
А данные внутри кортежа могут меняться.
И как же это по вашему данные могут измениться в кортеже?

P.S Изменение кортежа и создание нового это совершенно разные операции.

a = (1, 2)
b = a
print(a is b)
 
b = b + (3, 4)
print(a is b)
В первом случае a и b ссылаются на один и тот же объект (в следствии этого мы получаем true при проверке на соответствие объектов), а во 2 случае после операции b + (3, 4) создался новый объект и на это явно указывает вывод проверки print(a is b).

Отредактировано alex925 (Янв. 20, 2015 12:23:53)

Офлайн

#6 Янв. 20, 2015 12:24:59

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

alex925

>>> my_tuple = ([1, 2], [3, 4])
>>> my_tuple
([1, 2], [3, 4])
 
>>> my_tuple[0][0] = -1
>>> my_tuple
([-1, 2], [3, 4])
 
>>> del my_tuple[0][0]
>>> del my_tuple[0][0]
>>> my_tuple
([], [3, 4])

Отредактировано GreyZmeem (Янв. 20, 2015 12:25:22)

Офлайн

#7 Янв. 20, 2015 12:33:56

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

Ты не кортеж меняешь, ты меняешь список внутри кортежа.

Офлайн

#8 Янв. 20, 2015 12:40:19

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

alex925
Ты не кортеж меняешь, ты меняешь список внутри кортежа.
Согласен. Остались ли в кортеже те же самые данные?

Офлайн

#9 Янв. 20, 2015 12:51:44

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

GreyZmeem
Остались ли в кортеже те же самые данные?
да, в кортеже по-прожнему записаны адреса на объекты списков
>>> a = [1,2]
>>> b = [3,4]
>>> b.__contains__
<method-wrapper '__contains__' of list object at 0x7f3d08d69388>
>>> a.__contains__
<method-wrapper '__contains__' of list object at 0x7f3d04af5b88>
>>> c = (a, b)
>>> for i in c:
...  print(i.__contains__)
... 
<method-wrapper '__contains__' of list object at 0x7f3d04af5b88>
<method-wrapper '__contains__' of list object at 0x7f3d08d69388>
>>> a[1] = 4
>>> del(a[0])
>>> a
[4]
>>> for i in c:
...  print(i.__contains__)
... 
<method-wrapper '__contains__' of list object at 0x7f3d04af5b88>
<method-wrapper '__contains__' of list object at 0x7f3d08d69388>



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Янв. 20, 2015 12:52:12)

Офлайн

#10 Янв. 20, 2015 12:51:47

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Глупый вопрос насчет констант.

Да остались теже самые данные, если быть точным осталась лежать ссылка на объект списка.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version