170 похожих чатов

Как в питоне обозначить свойства класса? Хочу чтоб было заранее

прописанные свойства со своими типами были в классе, чтоб выдавало ошибку, если попытаться проинициализировать новое свойство, который заранее не объявлен

10 ответов

25 просмотров

Это вам не java, тут все зайки и таких наручников нет.

если коротко, то никак. ты можешь попытаться это сделать, но это уже будет недидиоматичный код на питоне.

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

GHdeewre- Автор вопроса

нет, проект свой. Просто начитался книжек вот хочу так же написать) . Но с типами думаю идея здравая, вот только не хочу кучу блоков if плодить. Аннотация типов в python странно работает, к примеру код ниже успешно запускается, хоть я и указал что аргументы фукнции должны быть строками сам код: class Person: def __init__(self, name: str, surname: str): self.name = name self.surname = surname def greet(self): print("Hello, I'm", self.name, self.surname) p = Person(1, 2) p.greet() https://replit.com/join/qxhtuhpxma-yushakhzod

>> Но с типами думаю идея здравая, вот только не хочу кучу блоков if плодить. assert же, зачем плодить ифы.

GHdeewre
нет, проект свой. Просто начитался книжек вот хочу...

аннотации типов ничего не гарантируют

GHdeewre
нет, проект свой. Просто начитался книжек вот хочу...

сами по себе аннотации типов никак не влияют на рантайм

Evgeny Kovalskiy
>> Но с типами думаю идея здравая, вот только не х...

отвратительно. assert не должен использоваться для бизнес-логики.

Alex
отвратительно. assert не должен использоваться для...

Вот тут интересно мне, а вы бы как сделали?

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта