在Python中,"at"(@)符号有什么作用?

17 浏览
0 Comments

在Python中,"at"(@)符号有什么作用?

在Python中,@符号是用来做什么的?

admin 更改状态以发布 2023年5月20日
0
0 Comments

示例

class Pizza(object):
    def __init__(self):
        self.toppings = []
    def __call__(self, topping):
        # When using '@instance_of_pizza' before a function definition
        # the function gets passed onto 'topping'.
        self.toppings.append(topping())
    def __repr__(self):
        return str(self.toppings)
pizza = Pizza()
@pizza
def cheese():
    return 'cheese'
@pizza
def sauce():
    return 'sauce'
print pizza
# ['cheese', 'sauce']

这个示例展示了你在装饰器后面定义的函数/方法/实际上只是作为一个参数传递给了@符号后面的函数/方法

首次出现

微型框架Flask从一开始就采用以下格式引入装饰器

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello World!"

这转化为:

rule      = "/"
view_func = hello
# They go as arguments here in 'flask/app.py'
def add_url_rule(self, rule, endpoint=None, view_func=None, **options):
    pass

最终明白这一点,使我对Flask感到平静。

0
0 Comments

在一行开头使用@符号来表示类和函数的装饰器:

常用的 Python 装饰器包括:

在一行中间使用@符号可能表示矩阵乘法:

0