Найти - Пользователи
Полная версия: #define в python 2.6 есть?
Начало » Python для новичков » #define в python 2.6 есть?
1 2
o7412369815963
сабж, или типа того
Александр Кошелев
Что такое “#define”?
Zubchick
есть конечно
#define
a = 'lol'
:D
Alex2ndr
Мы говорим о сишном #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
truporez
Не ленитесь искать в PyPi: http://pypi.python.org/pypi/pypreprocessor/0.4.0
ZZZ
ИМХО, для питона это совершенно бессмысленные костыли.
o7412369815963
>Мы говорим о сишном #define?
да.

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

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

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

всем спасибо.
alexx11
o7412369815963
это не даст производительности
Посмотри Psyco http://sourceforge.net/projects/psyco/ они обещают что могут в разы ускорить исполнение кода.
Ed
ZZZ
ИМХО, для питона это совершенно бессмысленные костыли.
Ну не скажите. Мне, например, никогда не нравились вызовы logger.debug в продакшен коде. В некоторых случаях, кстати, может сказаться на произовдительности.
ZZZ
Ed
Ну не скажите. Мне, например, никогда не нравились вызовы logger.debug в продакшен коде.
Не вижу проблем.

Ed
некоторых случаях, кстати, может сказаться на произовдительности.
C/C++? :-)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB