Найти - Пользователи
Полная версия: Статическая типизация в питоне
Начало » Python для новичков » Статическая типизация в питоне
1 2 3 4 5 6 7 8 9 10 11
FishHook
Под вендой есть вражеская вижуал студия. Тоже годная вещь.
doza_and
Подумал что может быть горячусь. Поставил сейчас опять pycharm проверить…
FishHook
Как понять, что программа тормозит?
4kpt
Используй PyScripter.

class Ta(object):
    def __init__(self,v):
        self.a=5
        self.b=6
        self.c="asdasd"
def a(x,b,c):
    print x,b,c
d=Ta()
a()
Время на дополнение аргументов порядка 2 секунд в pycharm
в pyscripter практически мгновенно, те быстрее чем я набираю одну букву.

Контекстная подсказка в обоих средах практически мгновенно.

Набор текста не тормозит ни там ни там. Ну а дальше решайте кому что важно.

doza_and
4kpt
Ты пользуешься виндой
Особый привет 4kpt. Я был в отключке по рабочим вопросом как… как белка в мясорубке :) Так что прошу прощение если упустил чтото важное.
Кстати под виндой я сейчас меньше времени провожу чем под unix. Там засел под spyder по причине нормальных графических backend. Рекомендую для разнообразия тоже попробовать.
sp3
Как то раз PyScripter намертво завис. После его его убийства оказалось что он переписал мусором все открытые файлы. Тогда я еще не пользовался гитом и бэкапа проекта тоже не было. Пришлось все заново переписывать. В багрепорт я им написал и в следующей версии они поправили, но осадок все равно остался.
lorien
Ну вот, казалось бы интересный топик скатился к обсуждению программок, в которых люди код набивают.
doza_and
lorien
интересный топик
Начнем с определения wiki:
“Стати́ческая типиза́ция — приём, широко используемый в языках программирования, при котором переменная, параметр подпрограммы, возвращаемое значение функции связывается с типом в момент объявления и тип не может быть изменён позже.”
c++:
template <typename T>
T dva(T x){return x*2;}
Где тут строгая типизация? Где хочешь там и вставляй.

def dva(obj):
    assert(isinstance(SomeClass), obj))
    return obj*2
А сюда уж не засунешь любой тип.
есть конечно разница, но значительно важнее стиль программирования.

sergeek
doza_and
я ничего не понял

FishHook
Вроде бы как дженерики (обобщенные типы), которые недавно появились в плюсах и черт знает когда в джаве и сишарпе, делают эти классические строготипизированные языки не такими уж и строготипизированными.
Я, кстати, не согласен.
lorien
> Где тут строгая типизация? Где хочешь там и вставляй.

#include <stdio.h>

template <typename T>

T dva(T x) {
return x * 2;
}

int main() {
const char *msg = "foo";
printf("Hello world: %d\n", dva(msg));
return 0;
}

$ gcc test.cpp -o hello
$ gcc test.cpp -o hello
test.cpp: In instantiation of ‘T dva(T) [with T = const char*]’:
test.cpp:11:40: required from here
test.cpp:6:16: error: invalid operands of types ‘const char*’ and ‘int’ to binary ‘operator*’
lorien
> А сюда уж не засунешь любой тип.

А вы python-пользователь? Вы у себя в каждой функции для каждого аргумента прописываете assert? А потом ещё по дополнительному ассерту во время получения результата из функции?
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