Форум сайта python.su
-1
Помогите разобраться, уважаемые.
вот код:
def Writing_Log():
line = ser.readline() + ‘\n’
SaveFile = open( ‘Position.txt’, ‘a’ )
SaveFile.write(line)
SaveFile.close()
return line
values = line.split( “ ” )
почему выдается ошибка? … Не понимаю, как работает return, сколько ни читал - везде пишут, что значение возвращает. Возвращает откуда?
Офлайн
568
QueeeeУважаемый, ну нельзя же быть таким твердотелым.
Помогите разобраться, уважаемые.
вот код:
def Writing_Log():
line = ser.readline() + ‘\n’
SaveFile = open( ‘Position.txt’, ‘a’ )
SaveFile.write(line)
SaveFile.close()
return line
values = line.split( “ ” )
почему выдается ошибка? … Не понимаю, как работает return, сколько ни читал - везде пишут, что значение возвращает. Возвращает откуда?
Офлайн
20
Смысл функции - возвращать значения (результат). Например функция складывающая два числа возвращает их сумму.
def sum(a, b):
return a + b
Офлайн
857
sum() - встроенная функция, нельзя перекрывать
Отредактировано py.user.next (Апрель 13, 2012 01:15:38)
Офлайн
568
py.user.nextДа ладно!
sum() - встроенная функция, нельзя перекрывать
>>> def sum(a,b): print 'sum=%s' %(a+b) >>> sum(10,3) sum=13 >>>
Офлайн
857
ну, а теперь примени встроенную функцию sum()
а она может понадобиться где угодно
Отредактировано py.user.next (Апрель 13, 2012 06:32:21)
Офлайн
568
py.user.nextЭто уже другой вопрос. Синтаксис Питона позволяет переопределить стандартную функцию. Что с ней делать - проблеммы программиста, т.е “можно-нельзя” в данном случае проблема качества кода, а не принципа. С другой стороны, если ты переопределишь ту же sum, расширив ее функционал, что в этом плохого?
ну, а теперь примени встроенную функцию sum()
а она может понадобиться где угодно
import collections def_sum=sum def sum(i): if isinstance(i, collections.Iterable): return def_sum(i) else: return i print sum([1,2,3]) print sum(9) >>>6 >>>9
#Native sum print sum([1,2,3]) print sum(9) Traceback (most recent call last): File "tr.py", line 3, in <module> print sum(9) TypeError: 'int' object is not iterable
Офлайн
20
“- Как вам моя функция?
- Горизонт завален!”
:D
Офлайн
857
FishHookтуда могут попасть неправильные данные, и она вернёт неправильный ответ
С другой стороны, если ты переопределишь ту же sum, расширив ее функционал, что в этом плохого?
>> import collections >>> def_sum=sum >>> def sum(i): ... if isinstance(i, collections.Iterable): ... return def_sum(i) ... else: ... return i ... >>> print sum(None) None >>>
>>> sum([[1], [2], [3]], []) [1, 2, 3] >>>
>>> sum([[1], [2], [3]], []) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: sum() takes exactly 1 argument (2 given) >>>
Офлайн
568
py.user.next
у тебя ошибка в определении функции sum()
встроенная версия>>> sum([[1], [2], [3]], []) [1, 2, 3] >>>
твоя версия>>> sum([[1], [2], [3]], []) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: sum() takes exactly 1 argument (2 given) >>>
Офлайн