Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Константы в питоне 
:(
    Опции темы
Karadul
Дата 6.2.2010, 14:09 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Как делать константы, вроде socket.SOCK_STREAM?
PM MAIL   Вверх
eshofot
Дата 6.2.2010, 23:53 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 21.10.2009

Репутация: нет
Всего: нет



может создать модуль? и потом импортировать его.
PM MAIL   Вверх
Karadul
Дата 7.2.2010, 02:31 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Тогда это будут обычные переменные, а как сделать именно константы?

P.S. вбейте в поиск, например, "SOCK_STREAM" в каталоге питона - ни в одном .py файле его не будет.
PM MAIL   Вверх
spSerg
Дата 7.2.2010, 13:10 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.3.2007

Репутация: 4
Всего: 4



среди либок есть _socket.pyd. Импортируем ее:
Код

import _socket

копаем внутри, и находим:
Код

>>> dir(_socket)
[... 'SOCK_DGRAM', 'SOCK_RAW', 'SOCK_RDM', 'SOCK_SEQPACKET', 'SOCK_STREAM', ...]
>>> type(_socket.SOCK_STREAM)
<type 'int'>

Скорее всего, это просто напрямую внедренное имя в _socket.__dict__
Либо просто
Код

SOCK_STREAM = 1


PM   Вверх
Леопольд
Дата 7.2.2010, 13:42 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: нет
Всего: 13



Цитата(Karadul @  7.2.2010,  02:31 Найти цитируемый пост)
Тогда это будут обычные переменные, а как сделать именно константы?

Констант в пайтоне нет.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Karadul
Дата 10.2.2010, 17:32 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



А как в моем примере?
Упсь, это тоже не константа.

Что, совсем никак?
Питонкапец++? Даже в перле есть (через одно место правда).
PM MAIL   Вверх
shupg
Дата 11.2.2010, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 21.6.2006

Репутация: 2
Всего: 2



Цитата

Питонкапец++? Даже в перле есть (через одно место правда). 


Через одно место они везде есть;) Если тебе без разницы как, но константы - есть способы!
PM MAIL   Вверх
spSerg
Дата 11.2.2010, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.3.2007

Репутация: 4
Всего: 4



А какую именно функциональность константы тебе нужно?
  • Представление числа именем? - так здесь и переменной хватает.
  • Скорость работы со значением без лишних обращений к памяти? - тут вообще не в тему. Потому как такое возможно только в компилируемых языках.
  • Невозможность изменения в коде? - такое можно классом навернуть. Вот только скорость, да и целесообразность такой конструкции сомнительна.


PM   Вверх
Karadul
Дата 11.2.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Невозможность изменения в коде без ковыряния в носу через ж и потери скорости.

Цитата(shupg @  11.2.2010,  11:09 Найти цитируемый пост)
Через одно место они везде есть;) Если тебе без разницы как, но константы - есть способы!

Какие? Если без слишком большого гимора.
PM MAIL   Вверх
Леопольд
Дата 11.2.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: нет
Всего: 13



Цитата(Karadul @  11.2.2010,  13:56 Найти цитируемый пост)
Какие? Если без слишком большого гимора. 

Копай в сторону декораторов. Не знаю как во втором пайтоне, знаю что в третьем можно сделать декоратор класса. Правде не помню как smile

@Const
class Enum(int): pass

Это сообщение отредактировал(а) Леопольд - 11.2.2010, 18:10


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0543 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.