LINUX.ORG.RU

Нафига?

Прототипы - тяжелое наследие тяжелых NN-х и должно быть exterminated

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 1)

прототипы функций

не нужно

lazyklimm ★★★★★
()

О, сколько нам открытий чудных готовил бы просвещенья дух.

tailgunner ★★★★★
()

я аж в гугль полез вспоминать чтоэта такое. Тебе оно зачем, расскажешь?

RedPossum ★★★★★
()
Ответ на: комментарий от AIv

ой, а правда что тогда

from A_h import *

q = f()

вернет мне в q the result of «some code»?

nokachi
()
Ответ на: комментарий от C1nde

это такой тип? То есть все функции имеют один и тот же тип? Чем тогда это отличается от утверждения что у функций типа нет?

nokachi
()
Ответ на: комментарий от AIv

Как где? Все как обычно же:

#A_h.py
def f(): pass

#A_c.py
from A_h import *
def f():
#some code

Обычно как пишут небольшие скрипты: вначале логика, ниже функции. Во всяком случае я так всегда делаю что пыхе, что на сях. На пыхе вообще прототипы не нужны, работает и так. На сях прототипы пишешь:

прототипы
логика
функции

А этим твоим кодом ты не вызовешь функцию до ее реализации. То есть, если логика будет выше функции, вызовется пустышка.

Xintrea ★★★★★
() автор топика

Я что-то не понял. А где в Python прототипы функций?

зачем в helloworld больше одного файла?

drBatty ★★
()
Ответ на: комментарий от Xintrea

На пыхе вообще прототипы не нужны, работает и так.

Ну в питоне точно также все, чего ты зря воздух сотрясаешь?

provaton ★★★★★
()

forward declaration в python можно разве что, как писали, сделать в виде костыля:

def f():
    pass
Обычная практика или сортировать функции, или не применять императивный подход и имплементировать логику в классах.

x0r ★★★★★
()
Последнее исправление: x0r (всего исправлений: 1)
Ответ на: комментарий от nokachi

Тем, что у функции есть тип — function. И у любой функции есть атрибут __call__

>>> a = lambda: a
>>> a()
<function <lambda> at 0x7f6d349b75f0>
>>> hasattr(a, '__call__')
True
>>> type(a)
<type 'function'>
C1nde
()
Ответ на: комментарий от nokachi

В языках с типами это компилятор гарантирует

Ты не поверишь, но в Python есть типы. А «компилятор гарантирует» в языках со _статической проверкой_ типов.

tailgunner ★★★★★
()
Ответ на: комментарий от nokachi

а в интерпретируемых языках, если не случится исключение, гарантируется что что-то возвратится. и вот это что-то можно проверить специальными способами.

AGUtilities ★★★
()
Ответ на: комментарий от x0r

не применять императивный подход и имплементировать логику в классах.

Сколько людей применяют термины, которых не понимают %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

абаснуй :) императивизм при использовании ООП останется разве толькое если наваять статических методов.

x0r ★★★★★
()
Ответ на: комментарий от x0r

императивизм при использовании ООП останется разве толькое если наваять статических методов.

ООП - это разновидность императивщины; отсуствие классов и ООП ничего не говорит о том, что программа императивна.

tailgunner ★★★★★
()
Ответ на: комментарий от AGUtilities

Не спора ради, просто интересно, может, я чего не понимаю или не знаю. Что возвращается в данном случае?

>>> def hello(user): print 'Hello,', user
... 
>>> hello('AGUtilities')
Hello, AGUtilities

C1nde
()
Ответ на: комментарий от x0r

у тебя языки делятся на функциональные и императивные небось?

Нет. Но я знаю смысл терминов «императивный» и «процедурный».

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от AGUtilities

Ну да. Как говорится, «None is an absence of the value». Я неудачно выразился.

tailgunner ★★★★★
()
Ответ на: комментарий от Deleted

да что там скала, даже создатели La Scala не знали!

nokachi
()
Ответ на: комментарий от Deleted

ООП - это разновидность императивщины

А создатели Scala и не знали

Что заставляет тебя думать, будто они этого не знали?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Одерский не считает, что ООП противоречит функциональному подходу, тогда как известно, что функциональная и императивная парадигмы противоречат друг другу.

Deleted
()
Ответ на: комментарий от Deleted

Одерский не считает, что ООП противоречит функциональному подходу

И? Ты сказал, что создатели Scala не знали, что ООП - разновидность императивщины. Что заставило тебя подумать, будто Одерский не знает таких простых вещей?

известно, что функциональная и императивная парадигмы противоречат друг другу.

И какой вывод?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Procedural programming is imperative programming in which the program is built from one or more procedures. The terms are often used as synonyms, but the use of procedures has a dramatic effect on how imperative programs appear and how they are constructed.

Heavily procedural programming, in which state changes are localized to procedures or restricted to explicit arguments and returns from procedures, is known as structured programming. From the 1960s onwards, structured programming and modular programming in general have been promoted as techniques to improve the maintainability and overall quality of imperative programs. Object-oriented programming extends this approach.

и того, процедурное программирование есть вариант реализации императивного подхода, в то время, как ООП вариант реализации и разшиерния, я правильно понял?

x0r ★★★★★
()
Ответ на: комментарий от x0r

и того, процедурное программирование есть вариант реализации императивного подхода, в то время, как ООП вариант реализации и разшиерния

Процедурное и объектно-ориентированное программирование - это виды императивного программирования, разработанные с целью улучшения качества программ.

я правильно понял?

Не совсем.

tailgunner ★★★★★
()
Ответ на: комментарий от Xintrea

А, ну это просто питон сломанный язык. В нормальных от порядка top-level определений возможность вызова не зависит.

anonymous
()

Долго пытался понять что за прототипы.

Мне как-то в джанге понадобилось что-то типа такого: Одному классу в Meta указывается второй класс, которому где-то тоже надо указать первый. Пострадал, но написал

class A:
    pass
Но это таки единичный случай, больше необходимости не возникало.

Kalashnikov ★★★
()
Ответ на: комментарий от tailgunner

Интересно деффки пляшуть...

Мне всегда казалось, что ООП (инкапсуляция, наследование, пролиморфизЪм - так кажется?) не особо связано с императивщиной/ФП. Это как бы разные плоскости совсем, можно юзать ООП и там и там.

Я не прав?

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.