Мы говорим о сишном #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