The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Атакующие получили доступ к 174 учётным записям в каталоге PyPI , opennews (??), 03-Апр-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


110. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от Аноним (35), 05-Апр-24, 10:36 
> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
> неродивых пограммистов.


$ python3
>>> '2' + 3.14

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "float") to str

типы не нужны но нужны.

Ответить | Правка | Наверх | Cообщить модератору

115. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от microcoder (ok), 05-Апр-24, 12:23 
>> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
>> неродивых пограммистов.
>
 
> $ python3
>>>> '2' + 3.14
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> TypeError: can only concatenate str (not "float") to str
>

> типы не нужны но нужны.

А так? :)))

> print("Geeks" * 4)

:)))))))))))))))))))))))))

В Пайтоне есть такая штука как operator overload. Делай что хочешь. Напиши свой метакласс, переопредели метод __add__() и будет тебе без Exception'а. Просто по умолчанию решили так сделать, а с умножением как видишь, умолчание другое, никаких ошибок.

Ответить | Правка | Наверх | Cообщить модератору

122. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от Аноним (76), 05-Апр-24, 13:18 
тогда уж так:
print("2" * 4)
будет совсем не 8....
Ответить | Правка | Наверх | Cообщить модератору

123. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от microcoder (ok), 05-Апр-24, 13:31 
> тогда уж так:
> print("2" * 4)
> будет совсем не 8....

Да, Python обладает строгой динамической (не статической) типизацией. Это работает, потому что переменная не имеет типа:

https://stackoverflow.com/questions/11328920/is-python-stron...

Ответить | Правка | Наверх | Cообщить модератору

124. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от Аноним (35), 05-Апр-24, 16:42 
> Да, Python обладает строгой динамической (не статической) типизацией.

но ведь...

> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
> неродивых пограммистов.

м?

Ответить | Правка | Наверх | Cообщить модератору

126. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от АнонПапка (?), 05-Апр-24, 17:15 
>> Да, Python обладает строгой динамической (не статической) типизацией.
> но ведь...
>> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
>> неродивых пограммистов.
> м?

Ну статические имел ввиду типы это ограничение

Ответить | Правка | Наверх | Cообщить модератору

129. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от Аноним (35), 05-Апр-24, 19:08 
>>> Да, Python обладает строгой динамической (не статической) типизацией.
>> но ведь...
>>> Типы в динамике не нужны, это ограничение. Типы нужны лишь только для
>>> неродивых пограммистов.
>> м?
> Ну статические имел ввиду типы это ограничение

и это ограничение. Правильно сделано в Perl. Если я хочу конкатенацию строк, я пишу 1 . '2', если хочу сложение чисел - 1 + '2'. Хочу сравнение строк - 1 eq '2', хочу сравнение чисел - 1 == '2'. Мне не надо думать над типами, и почему я одну overload'нутую операцию применяя к переменным x и y получаю TypeError. Зачем мне этот полумер с строгой динамической типизацией? От ошибок рантайма не спасает, лишь добавляет лишней мороки.

Ответить | Правка | Наверх | Cообщить модератору

131. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  –1 +/
Сообщение от microcoder (ok), 05-Апр-24, 19:50 
> и это ограничение. Правильно сделано в Perl. Если я хочу конкатенацию строк,
> я пишу 1 . '2', если хочу сложение чисел - 1
> + '2'. Хочу сравнение строк - 1 eq '2', хочу сравнение
> чисел - 1 == '2'. Мне не надо думать над типами,
> От ошибок рантайма не спасает, лишь добавляет лишней мороки.

А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет почти тоже самое:

1 + '2' = 3
1 + 'строка' = '1строка'
'1' + '2' = '12'
1 == '1' is true

Как хочешь...
https://docs.python.org/3/library/operator.html#mapping-oper...

Ответить | Правка | Наверх | Cообщить модератору

132. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от Аноним (35), 05-Апр-24, 20:12 
> А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет
> почти тоже самое:

но зачем? :-D

Ответить | Правка | Наверх | Cообщить модератору

133. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от microcoder (ok), 05-Апр-24, 21:40 
>> А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет
>> почти тоже самое:
> но зачем? :-D

Дело ваше конечно. Просто возможность. Хотите используете - хотите нет. Почти ничего не прибито гвоздями

Ответить | Правка | Наверх | Cообщить модератору

135. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +1 +/
Сообщение от Аноним (35), 06-Апр-24, 05:25 
>>> А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет
>>> почти тоже самое:
>> но зачем? :-D
> Дело ваше конечно. Просто возможность.

возможность overloadнуть методы? ни-мо-жит-быть! только на опеннете тебе пито-няши расскажут что исключения - замена юниттестам, а перегрузка методов замена слабой типизации. Так и живём, кампутер сцаенс.

Ответить | Правка | Наверх | Cообщить модератору

141. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от Илья (??), 08-Апр-24, 13:18 
> А кто мешает в Python реализовать метакласс в котором переопределить операторы? Будет почти тоже самое...

А можно не надо? Моя мысль в том, что питон требует массы усилий, чтобы с ним нормально работать. А конкурентных приемуществ 0, кроме как миллионы джунов-питонистов, которые не понимают как компьютер работает, но лезут изо всех щелей

Ответить | Правка | К родителю #131 | Наверх | Cообщить модератору

140. "Атакующие получили доступ к 174 учётным записям в каталоге P..."  +/
Сообщение от Илья (??), 08-Апр-24, 13:06 
> и это ограничение. Правильно сделано в Perl. Если я хочу конкатенацию строк, я пишу 1 . '2', если хочу сложение чисел - 1 + '2'. Хочу сравнение строк - 1 eq '2', хочу сравнение чисел - 1 == '2'.

Извиняюсь, поправлю.

Ты вряд-ли пишешь "1.'2'"
Скорее всего ты пишешь $amount . $otherAmount

То есть, явного нетипобезопасного приведения в реальном коде встретить практически нельзя. А стреляет как раз неявное

Ответить | Правка | К родителю #129 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру