Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 20, 2012 15:06:08

an1s1
Зарегистрирован: 2012-08-15
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Python в Си

EBFE
Так вам что именно нужно?
Скорость выполнения (здесь PyPy рулит, ограничения: 2.7, gevent не поддерживается итд), “защита” кода (возможно хватит и обфускатора) или защита от взлома (в этом смысле С++ немного “лучьше”, хотя все упирается в концепцию - что нибудь вроде
“if registered(username, key) == True” ломается на раз, что в Pythone, что в Си) ?
Все вместе, чуть поднять производительность(приятный бонус), защитить код(основная задача), позволить модулю работать на всех актуальных версиях интерпретатора(основная)

Офлайн

#2 Авг. 20, 2012 15:30:00

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python в Си

У cython есть сложности с нетривиальными генераторами, если что. И отсутствуют classmethod/staticmethod

Это были самые раздражающие отличия.



Отредактировано Андрей Светлов (Авг. 20, 2012 16:50:33)

Офлайн

#3 Авг. 20, 2012 15:35:13

an1s1
Зарегистрирован: 2012-08-15
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Python в Си

Андрей Светлов
У cpython есть сложности с нетривиальными генераторами, если что.
И отсутствуют classmethod/staticmethod

Это были самые раздражающие отличия.
О classmethod/staticmethod услышал здесь впервые, так что не страшно(похоже мало кто их использует). А какие генераторы считаются нетривиальными? Определенные пользователем?

Офлайн

#4 Авг. 20, 2012 16:59:04

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python в Си

Я глубоко не разбирался. Заметил проблему на таком коде:

def waves(self, _hexes=None):
    """Yields waves starting from hexes one by one.

    Each wave is a list. You can exclude some hexes
    from yielded list and continue iterating on filtered list.
    """
    hexes = [self]
    if _hexes is not None:
        hexes.extend(_hexes)
    visited = set(hexes)
    lastwave = list(hexes)
    while lastwave:
        newwave = []
        for nc in lastwave:
            for nnc in nc.neighbours():
                if nnc not in visited:
                    visited.add(nnc)
                    newwave.append(nnc)
        yield newwave
        lastwave = newwave

Это запуск стандартного волнового алгоритма от точки, возвращает список-волну на каждом шаге. Из этой волны можно исключать нужные точки, чтобы от них не бежала следующая волна.

В cython, насколько помню, волна не желала бежать вообще.



Офлайн

#5 Авг. 21, 2012 18:57:34

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Python в Си

an1s1
О classmethod/staticmethod услышал здесь впервые, так что не страшно(похоже мало кто их использует).

Отнюдь. То что Вы об этих декораторах слышите впервые никоим образом не значит что их мало кто использует.



Офлайн

#6 Авг. 22, 2012 10:14:45

mrgloom
От:
Зарегистрирован: 2010-07-22
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

Python в Си

Shedskin такое ощущение, что может скомпилировать только хэлло ворд, очень много ограничений.



___________________________________________________________________________________________
http://www.lfd.uci.edu/~gohlke/pythonlibs/
https://bitbucket.org/pypy/compatibility/wiki/Home

Офлайн

#7 Авг. 22, 2012 10:50:07

an1s1
Зарегистрирован: 2012-08-15
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Python в Си

cutwater
an1s1
О classmethod/staticmethod услышал здесь впервые, так что не страшно(похоже мало кто их использует).

Отнюдь. То что Вы об этих декораторах слышите впервые никоим образом не значит что их мало кто использует.
Конечно, но сколько видел кода, нигде они не использовались(может не туда смотрел).

Офлайн

#8 Авг. 22, 2012 19:14:06

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Python в Си

Это два самых используемых декоратора в питоне, так что спорить тут бессмысленно.
Поиск по гитхабу выдаёт ~140к и ~750к вхождений для staticmethod и classmethod соответственно.



Офлайн

#9 Авг. 22, 2012 20:17:00

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Python в Си

С другой стороны, и без них все работает

Офлайн

#10 Авг. 22, 2012 21:40:02

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Python в Си

odnochlen
С другой стороны, и без них все работает

С таким подходом можно все писать без ООП на питоне или даже на чистом си. Ведь все работает и без этих ваших сложностей.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version