cybergrind
Июль 24, 2008 13:03:25
и вообще, похже чтото такое уже комуто надо было: from ctypes import c_buffer =) вот только как с нима надо поиметься что бы оно работало как надо - оянезнаю
evgenyl
Июль 24, 2008 13:25:52
Не нервничайте, питон намного чаще работает напрямую с памятью чем вам кажется и пишет и читает, и ничего страшного, виной тому злополучный GIL
ctypes и включение его в базовый пакет библиотек - прямое докозательство тому
в ctypes можно делать структуры в памяти передавать их компонентам языка написанным на С, потом обратно читать в питоне, всё это прекрасно работает.
Первый шаг статическая типизация, что бы это значило? подумайте, какой будет второй шаг ?
Вы меня немного не так поняли, мне не нужно расширение, не нужно править интерпретатор, я посто спросил есть ли возможность получить эту строку в языке, может я просто его не знаю
Про c_buffer, спасибо, посмотрю счас
Ferroman
Июль 24, 2008 13:44:50
Первый шаг статическая типизация, что бы это значило
В 3000
не будет статической типизации. Если у Вас есть другая инфа - давайте PEP.
Питон специально отгорожен от прямой работы с памятью.
И вообще
Although practicality beats purity. :)
evgenyl
Июль 24, 2008 14:02:26
PEP нет, пока просто разговоры, анатации к функциям введены для того чтобы облегчить жизнь писателей компиляторов питона
давно извесная философия питона, вот здесь это на русском
http://ru.wikipedia.org/wiki/Python в разделе философия, кому интересно
но вопрос не об этом
shiza
Июль 24, 2008 14:27:04
Погляди модуль array, там кажется было что-то с памятью.
shiza
Июль 24, 2008 15:17:10
Долго и задумчиво глядел на ctypes.
Пока заткнулся на том, что такое длиное число ни в какую не хочет конвертироваться в ULongLong. Все норовит в Long.
В моем питоне (x86) они видимо еще в каком-то виде записано.
evgenyl
Июль 24, 2008 15:20:55
Мой вопрос просто любпытство, когдато давно я любопытствовал по поводу того как получить доступ к локальном переменной функции которая вызвала мою функцию. В конце концов нашёл, хотя тоже говорили питон типа не может так, передавай масив и всё
собственно вот пример
import sys
def func2():
print sys._getframe(1).f_locals
def func1():
a=10
b=15
func2()
func1()
Вот я думаю что, если это число у него уже есть, то почему бы его и не моч отдать его, в виде бинарной строки
ZAN
Июль 24, 2008 15:30:07
evgenyl
хотя тоже говорили питон типа не может так
Это была наглая дезинформаци :) - в модуле inspect предусмотрены функции для работы со стеком интерпретатора.
ZAN
Июль 24, 2008 15:31:41
evgenyl
sys._getframe(1)
Но все-равно - вызывать спрятанные методы некрасиво, даже если и можно.
evgenyl
Июль 24, 2008 15:37:05
а что красивее сделать 2 лишних преобразования или вызвать спрятанный метод ?