Уведомления

Группа в Telegram: @pythonsu

#1 Май 9, 2011 20:59:55

JoJo
От:
Зарегистрирован: 2010-01-03
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Python vs Ruby

Возможно кому-то из местных будет интересна следующая тема http://versusit.ru/viewtopic.php?pid=67325

Не скажу, что Python знаю хорошо, но после прочтения учебника по Ruby показалось, что он (Ruby) имеет более объектно-ориентированную структуру.

Смущает правда малое количество имеющихся библиотек для Ruby. Python в этом плане это реально корпоративный уровень, в то время как Ruby – нишевый.



Офлайн

#2 Май 9, 2011 21:27:48

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Python vs Ruby

JoJo
Не скажу, что Python знаю хорошо, но после прочтения учебника по Ruby показалось, что он (Ruby) имеет более объектно-ориентированную структуру.
можно пример? зачем более?

Офлайн

#3 Май 9, 2011 21:47:40

JoJo
От:
Зарегистрирован: 2010-01-03
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Python vs Ruby

o7412369815963
можно пример? зачем более?
Пока адекватный пример привести не могу, но вот к примеру, как будет выглядеть аналогичная функция на питоне?

while line = gets
puts line.downcase
end



Офлайн

#4 Май 9, 2011 22:05:54

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Python vs Ruby

примерно так:

while True:
line = raw_input()
if line: print line.lower()
else: break

Отредактировано (Май 9, 2011 22:14:28)

Офлайн

#5 Май 10, 2011 14:18:27

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Python vs Ruby

Скорее

while True:
line = raw_input()
print( line.lower() )
Т.к. рубиевский цикл завершается только по ctrl-C



Офлайн

#6 Май 10, 2011 15:21:11

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Python vs Ruby

ZAN
Скорее
while True:
line = raw_input()
print( line.lower() )
Т.к. рубиевский цикл завершается только по ctrl-C
а я подумал, что в “while line = gets” идет проверка… значит тут смысл - написать в одну строку.

вообщем оба вопроса не раскрыты:
>(Ruby) имеет более объектно-ориентированную структуру.
1) чем он более объектно-ориентирован?
2) что оно дает (более объектно-ориентированность)?

Офлайн

#7 Май 10, 2011 15:23:25

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Python vs Ruby

Ну блин, тогда уж:

>>> while True:
... print(raw_input().lower())
;)



Офлайн

#8 Май 10, 2011 15:39:19

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Python vs Ruby

while line = gets - это присвоение. Проверка в руби, как и в питоне - на “==” (выполнил в irb :) ).
В питоне такая неочевидная (line = gets в роли оператора сравнения) конструкция запрещена синтаксически, чтобы исключить _случайное_ использование присвоения вместо сравнения.
Сразу вспомнилась цитата из книги “Как не надо программировать на С++”:

if(amout = 0) присваивает amount значение 0, а затем проверяет истинность результата (то есть отлично ли переменная от нуля). Но переменная равна нулю, поэтому выполняется секция else
Правильна команда выглядит так: if(amount == 0)
Дело было в то время, когда я преподавал программирование. Как-то через два месяца после окончания курсов я встретил одного из своих учеников. И он сказал мне:
- Знаешь, Стив, на курсах мне казалось, что ты перегибаешь палку, постоянно объясняя различия между = и ==. Но вчера я написал свою первую настоящую программу… и знаешь, какую ошибку я сделал?



Офлайн

#9 Май 10, 2011 15:57:32

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Python vs Ruby

JoJo
имеет более объектно-ориентированную структуру.
А какой, стесняюсь спросить, критерий и шкала оценки “объектно-ориентированности структуры”?
Ну и, собственно, что вы подразумеваете под этим, а то у нас тут, походу, общее недопонимание.



Отредактировано (Май 10, 2011 15:58:13)

Офлайн

#10 Май 10, 2011 17:10:42

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Python vs Ruby

прочитал страницу по ссылке из первого поста, сделал вывод:
- руби “менее ОО”, например модули не являются объектами
- ситуация с .call и “()”
- не все можно подменить (тот же .call), есть всякие ограничения
и ещё, мне с паскаля не нравиться “end”, си-скобки лучше “ { }”

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version