Уведомления

Группа в Telegram: @pythonsu

#1 Июль 21, 2010 07:14:33

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

#define в python 2.6 есть?

Офлайн

#2 Июль 21, 2010 07:23:55

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

#define в python 2.6 есть?

Что такое “#define”?



Офлайн

#3 Июль 21, 2010 07:28:31

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

#define в python 2.6 есть?

есть конечно

#define
a = 'lol'
:D



Офлайн

#4 Июль 21, 2010 09:03:06

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

#define в python 2.6 есть?

Мы говорим о сишном #define?

Питон - интерпретируемый, а не компилируемый язык. Поэтому этапа, на котором компилятор заменит все константы, определенные в #define здесь просто нет. Хотя наверно при компиляции в байт код происходит что-то подобное. Но я думаю никаких специальных телодвижений, облегчающих жизнь интерпретатору, делать не нужно.

Если только речь идет не о модулях питона, написанных на С. Там #define есть:

alex@debian-gate:~$ find /usr/lib/python2.5/ -iname *.c | while read fn; do grep "#define" $fn; done
#define PY_LONG_LONG LONG_LONG
#define __PYX_EXTERN_C extern "C"
#define __PYX_EXTERN_C extern
#define PY_SSIZE_T_CLEAN
#define PY_LONG_LONG LONG_LONG
#define PY_SSIZE_T_MAX INT_MAX
#define PY_SSIZE_T_MIN INT_MIN
#define PyInt_FromSsize_t(z) PyInt_FromLong(z)
#define PyInt_AsSsize_t(o) PyInt_AsLong(o)
#define __PYX_EXTERN_C extern "C"
#define __PYX_EXTERN_C extern
#define OUTPUTCHAR(c,n) PycStringIO->cwrite(output, c, n)
#define STATE_INITIAL 0
#define STATE_PERCENT 1
#define STATE_HEXDIGIT 2
#define NOT_HEXDIGIT 255
#define WSAID_CONNECTEX {0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}
#define WSAID_GETACCEPTEXSOCKADDRS {0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
#define WSAID_ACCEPTEX {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
#define WSAID_TRANSMITFILE {0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
#define PY_SSIZE_T_CLEAN
#define PY_LONG_LONG LONG_LONG
#define PY_SSIZE_T_MAX INT_MAX
#define PY_SSIZE_T_MIN INT_MIN
#define PyInt_FromSsize_t(z) PyInt_FromLong(z)
#define PyInt_AsSsize_t(o) PyInt_AsLong(o)
#define __stdcall
#define __cdecl
#define __PYX_EXTERN_C extern "C"
#define __PYX_EXTERN_C extern
#define PY_LONG_LONG LONG_LONG



Отредактировано (Июль 21, 2010 09:18:27)

Офлайн

#5 Июль 21, 2010 09:33:24

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

#define в python 2.6 есть?

Не ленитесь искать в PyPi: http://pypi.python.org/pypi/pypreprocessor/0.4.0



Офлайн

#6 Июль 21, 2010 09:46:31

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

#define в python 2.6 есть?

ИМХО, для питона это совершенно бессмысленные костыли.



Офлайн

#7 Июль 21, 2010 09:58:03

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

#define в python 2.6 есть?

>Мы говорим о сишном #define?
да.

я хотел что-б при таком условии:

if RULE_READ in user.rules: print 'bla'
что-бы RULE_READ был числом а не переменной.

Alex2ndr
>Но я думаю никаких специальных телодвижений, облегчающих жизнь интерпретатору, делать не нужно.
согласен, оставлю как есть

>Не ленитесь искать в PyPi
это не даст производительности

всем спасибо.

Офлайн

#8 Июль 21, 2010 21:28:51

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

#define в python 2.6 есть?

o7412369815963
это не даст производительности
Посмотри Psyco http://sourceforge.net/projects/psyco/ они обещают что могут в разы ускорить исполнение кода.



Офлайн

#9 Июль 22, 2010 00:09:01

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

#define в python 2.6 есть?

ZZZ
ИМХО, для питона это совершенно бессмысленные костыли.
Ну не скажите. Мне, например, никогда не нравились вызовы logger.debug в продакшен коде. В некоторых случаях, кстати, может сказаться на произовдительности.



Отредактировано (Июль 22, 2010 00:09:25)

Офлайн

#10 Июль 23, 2010 09:19:25

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

#define в python 2.6 есть?

Ed
Ну не скажите. Мне, например, никогда не нравились вызовы logger.debug в продакшен коде.
Не вижу проблем.

Ed
некоторых случаях, кстати, может сказаться на произовдительности.
C/C++? :-)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version