Вопрос по python – Что означает `@` в Python?

3

Что значит@ значит в питоне?

Пример:@login_required, так далее.

Ваш Ответ

6   ответов
1

Если вы зададите этот тип вопроса, вы, вероятно, заинтересуетесь другимскрытые возможности Python.

30

Это синтаксис декоратора.

A function definition may be wrapped by one or more decorator expressions. Decorator expressions are evaluated when the function is defined, in the scope that contains the function definition. The result must be a callable, which is invoked with the function object as the only argument. The returned value is bound to the function name instead of the function object. Multiple decorators are applied in nested fashion.

Так что-то вроде этого:

@login_required
def my_function():
    pass

Это просто модный способ сделать это:

def my_function():
    pass
my_function = login_required(my_function)

Для больше, проверьтедокументация.

0

Некоторые ресурсы для декоратора: декоратор, PEP 318: декораторы для функций и методов, PythonDecorators а также PythonDecoratorLibrary.

 декоратор статьи на DDJ а также другая статья (Сообщение блога).

1

Декоратор, также называетсясинтаксис пирога, Это позволяет вам «украшать» функция с другой функцией. У вас уже были украшения с помощью staticmethod () и classmethod (). Синтаксис круговой диаграммы облегчает доступ и расширение.

из вики, во время обсуждения выбора. Я думаю, что это происходит от традиционного именования Javawiki.python.org/moin/PythonDecorators#A1.piedecoratorsyntax
1

Этот конкретный декоратор выглядит так, как будто он от Джанго.

Это может помочь вам лучше понять, прочитавDjango документация об этом декораторе.

1

Это декоратор. Больше здесь:http://www.ibm.com/developerworks/linux/library/l-cpdecor.html

это не ответ на вопрос.

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