Найти - Пользователи
Полная версия: str.format
Начало » Python для новичков » str.format
1 2 3
Rodegast
> Это ты хочешь сказать, что это лучше короткого str.format()?

Конечно. Явное лучше, чем неявное., или ты с этим не согласен?
py.user.next
Rodegast
или ты с этим не согласен?
Не, я с этим не согласен. Ты можешь весь питон взять и увидеть, что в нём почему-то практически всё неявно происходит. Как-то неявно он там всё в памяти распределяет, никогда не скажешь, какого типа значение доступно в данный момент через то или иное имя. Да и методы у строки, которые срабатывают на операцию + или * вызываются как-то неявно.

Да и что тут неявного? Я же говорю, если нужна строгость типа, то в форматной строке ты просто ставишь не {}, а {:d} или {:f}. Но если мне строгость не нужна, я могу убрать эти d и f и эта штука {} станет принимать не только d и f, но и None, и многие другие типы, у которых есть строковое представление.

Так что ты просто масло масляное написал, а потом говоришь “это я не масло масляное написал, это я дзен питона соблюдал, это явность у меня такая”.
Rodegast
> Не, я с этим не согласен.

Я даже не знаю о чём с тобой можно разговаривать если ты с дзеном не согласен…

> Как-то неявно он там всё в памяти распределяет

Ты не путай интерпретатор с исходниками.

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

type никто не отменял.

> Да и методы у строки, которые срабатывают на операцию + или * вызываются как-то неявно.

Если в твоей программе только один тип для строк, то это нормально. Но если ты начинаешь наследоваться от строк что бы переопределить их стандартное поведение, то это плохо.

> Я же говорю, если нужна строгость типа, то в форматной строке ты просто ставишь не {}, а {:d} или {:f}

Я этим не пользуюсь, по этому туда ничего и не ставлю И если честно я не видел что бы этим кто то часто пользовался.
py.user.next
Rodegast
type никто не отменял
Какой type? Ты читаешь исходник, в нём должно быть всё явным. Но ты видишь десяток имён и ты знаешь только о том, что в них находится, но не знаешь, какие типы у этих значений. Ты не можешь туда вставлять type, ты должен сразу брать эти значения и правильно работать с их типами. А как ты будешь с ними правильно работать, если тебе они неизвестны? Только наугад или только через предварительный контроль.

Вот пример
  
def f(a):
    print(a)
    # что ещё можно сделать с a?
Вот этот аргумент a, какие у него есть методы и операции? А хрен его знает, его тип неизвестен, потому что в питоне типы явно не задаются. Но просчёт ли это со стороны разработчиков питона?
Rodegast
> никогда не скажешь, какого типа значение доступно в данный момент через то или иное имя

Ты хоть понимаешь смысл слов которые пишешь? Или просто придуриваешься?
py.user.next
Rodegast
Ты хоть понимаешь смысл слов которые пишешь? Или просто придуриваешься?
Да я просто мыслю гораздо шире. Я думаю как бы многопоточно, в то время как ты думаешь однопоточно. Поэтому ты и понять ничего не можешь. Я думаю об исходниках, часто эти исходники ещё не написаны, они существуют в воображении, и там же, в воображении, я пишу программу. Это, знаешь ли, сильно экономит время. Когда она готова, её остаётся только записать в комп. Так вот, я вижу исходник, загружаю его в своё воображение, запускаю его в своём воображение и смотрю, где там и что происходит в этой выполняющейся программе, которая работает у меня в воображении, как в компьютере. Дальше я вижу в нём десять переменных и начинаю думать, какая из них какого типа. И вот питон как раз не даёт это узнать так, как это легко делается в C. Это язык такой, где всё просто скрыто под капотом, что-то там происходит, а что - не видно. Вот это твой “явный” питон, никакой он не явный. В C, когда я делаю всё то же самое, я всегда знаю, сколько у меня там памяти занимается, какие типы у значений и что по данному имени переменной хранится и какие операции над ним можно выполнять (за это отвечает тип - за множество допустимых операций). А ты предлагаешь type() - явно ты не в теме. Я что, должен каждый код в комп переписывать, потом в нём везде всё type()'ами покрывать, смотреть где какие типы, запоминать это всё, а потом эти type()'ы удалять обратно? Да, ты не понимаешь меня.
Rodegast
> Да я просто мыслю гораздо шире.

У тебя случайно третий глаз не открылся
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