- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
@dataclass(slots=True)
class Govno:
govno_index: int
def patch(self, indices_dict: Dict[int, int]) -> None:
new_index = indices_dict[self.govno_index]
self.govno_index = new_index
@dataclass(slots=True)
class Mocha:
mocha_index: int
def patch(self, indices_dict: Dict[int, int]) -> None:
new_index = indices_dict[self.govno_index]
self.govno_index = new_index
Метод «patch» был скопипащен из класса «Govno» в класс «Mocha». Тайпчекер никаких ошибок не показывал; все типы были выведены корректно.
А в рантайме всё упало, что и неудивительно!
ISO 13.06.2023 19:58 # 0
OPAHrymaH 15.06.2023 05:38 # 0
OPAHrymaH 15.06.2023 05:40 # 0
guest6 15.06.2023 09:07 # 0
guest6 15.06.2023 11:52 # +1
ISO 15.06.2023 13:13 # +2
По-умолчанию объекту можно насрать в произвольный атрибут: «obj.foo = 42» эквивалентно (с оговорками и в отсутствии перегрузки __getattribute__) «obj.__dict__['foo'] = 42».
Слоты позволяют жёстко зафиксировать возможные атрибуты объекта на этапе описания класса, тем самым:
1) Запретить присваивание любым другим атрибутам, кроме перечисленных в кортеже __slots__ класса;
2) Уменьшить занимаемую объектами память (для «слотовых» объектов не создаётся словарь __dict__ с соответствующим оверхедом);
3) Увеличить скорость доступа к атрибутам объекта, причём значительно (вместо поиска в словаре по названию ключа происходит быстрое разрешение по номеру слота).
guest6 15.06.2023 14:03 # 0
guest6 15.06.2023 14:11 # 0
Назовите статически типизированный, компилируемый в нативный код язык, в котором можно вызвать несуществующий метод и не упасть
3a_O6e_Horu 15.06.2023 14:35 # 0
Я такой называю несуществующим, если там можно несуществующий символ привести к функции, а потом еще и вызвать.
ISO 15.06.2023 19:56 # +2
Запомнить очень легко: «__getattr__» короче, поэтому в него попадает меньше вызовов (только те ключи, которые не нашлись в объекте), а «__getattribute__» длиннее, поэтому ловит все обращения к атрибутам.
OPAHrymaH 15.06.2023 21:12 # +1
j123123 15.06.2023 21:34 # +3
3a_O6e_Horu 15.06.2023 21:42 # +1
Tike 15.06.2023 21:44 # +3
Warning Even the higher-level file copying functions (shutil.copy(), shutil.copy2()) cannot copy all file metadata.
On POSIX platforms, this means that file owner and group are lost as well as ACLs.
блядь
Tike 15.06.2023 21:45 # +3
shutil.copyfileobj(fsrc, fdst[, length])
Copy the contents of the file-like object fsrc to the file-like object fdst. The integer length, if given, is the buffer size. In particular, a negative length value means to copy the data without looping over the source data in chunks; by default the data is read in chunks to avoid uncontrolled memory consumption. Note that if the current file position of the fsrc object is not 0, only the contents from the current file position to the end of the file will be copied.
guest6 15.06.2023 12:21 # 0
До речи, пайшарм прекрасно это хендлит
https://i.postimg.cc/VLh1DzMC/image.png
Пользуйтесь нормальными инструментами
Tike 15.06.2023 12:50 # 0
Поддерживаю. «Питон» не нужен.
j123123 15.06.2023 12:55 # +3
3a_O6e_Horu 15.06.2023 12:57 # 0
А е-клипса от других деятелей?
guest6 15.06.2023 12:58 # +2
Эклипс такое же тормозное говно как и JB, просто еще и нихуя не умеет без сорока девяти плагинов
j123123 15.06.2023 13:05 # 0
guest6 15.06.2023 14:03 # +1
3a_O6e_Horu 15.06.2023 14:31 # +1
j123123 15.06.2023 14:40 # +2
Tike 15.06.2023 14:42 # 0
j123123 15.06.2023 14:44 # +1
guest6 15.06.2023 16:29 # 0
JloJle4Ka 15.06.2023 14:44 # 0
3a_O6e_Horu 15.06.2023 14:53 # +1
guest6 15.06.2023 16:29 # 0
И кстати если бы они написали всё на С++, то оно летало бы
guest6 15.06.2023 18:44 # 0
guest6 15.06.2023 12:57 # 0
Другой вопрос, что питухон не нужен (как правильно и сказал Файк): подобной проблемы в нормальном ЯП бы не случилось
j123123 15.06.2023 13:03 # +2
Я за то, чтобы всякие стат. анализаторы шли отдельной хуйней типа LSP, а не встраивать это намертво в тормозное жабаговно
> Другой вопрос, что питухон не нужен (как правильно и сказал Файк)
С этим я не спорю
guest6 15.06.2023 14:04 # 0
guest6 15.06.2023 14:07 # +2
guest6 15.06.2023 18:42 # +1
Tike 15.06.2023 14:44 # +1
guest6 15.06.2023 16:29 # 0
ISO 15.06.2023 13:09 # +1
JloJle4Ka 15.06.2023 14:41 # 0
ISO 15.06.2023 13:14 # 0
3a_O6e_Horu 16.06.2023 11:01 # +1