Форум сайта python.su
сабж, или типа того
Офлайн
Что такое “#define”?
Офлайн
есть конечно
#define
a = 'lol'
Офлайн
Мы говорим о сишном #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)
Офлайн
Не ленитесь искать в PyPi: http://pypi.python.org/pypi/pypreprocessor/0.4.0
Офлайн
ИМХО, для питона это совершенно бессмысленные костыли.
Офлайн
>Мы говорим о сишном #define?
да.
я хотел что-б при таком условии:
if RULE_READ in user.rules: print 'bla'
Офлайн
o7412369815963Посмотри Psyco http://sourceforge.net/projects/psyco/ они обещают что могут в разы ускорить исполнение кода.
это не даст производительности
Офлайн
ZZZНу не скажите. Мне, например, никогда не нравились вызовы logger.debug в продакшен коде. В некоторых случаях, кстати, может сказаться на произовдительности.
ИМХО, для питона это совершенно бессмысленные костыли.
Отредактировано (Июль 22, 2010 00:09:25)
Офлайн
EdНе вижу проблем.
Ну не скажите. Мне, например, никогда не нравились вызовы logger.debug в продакшен коде.
EdC/C++? :-)
некоторых случаях, кстати, может сказаться на произовдительности.
Офлайн