Django中的lambda函式

2021-06-25 20:59:44 字數 419 閱讀 6424

django裡有乙個特別適合lambda函式的場合:即「認證裝飾器」,它的作用是確認使用者有足夠的許可權訪問某些頁面。一種辦法是講乙個代表已登入使用者的user物件傳遞給乙個函式,如果允許使用者訪問則返回true,否則返回false。

這樣的函式可以用一般的def foo():來定義,但是lambda更加簡潔。比如

@user_passes_test(lambda u:u.is_allowed_to_vote)

def vote(request):

"""process a user's vote"""

以@開頭的是乙個函式裝飾器(function decorator),裝飾器通過包裝函式來改變它們的行為。這裡的user_pass_test裝飾器是django內建的乙個特性,它接收乙個人和接受django user物件的函式作為引數,並返回乙個布林值。

Django中Middleware中的函式詳解

乙個middleware的例子 import time from django.urls import reverse from django.utils.deprecation import middlewaremixin class timeitmiddleware middlewaremixi...

python的map函式和lambda函式

map函式的功能是根據提供的函式對指定序列做對映,就是對第二個引數的每乙個值執行第乙個引數所指定的函式 lambda是定義乙個匿名函式 crsusr rws1270149 python study cat mypy02.py usr bin python3.7 import sys,string,o...

Pytorch中的contiguous 函式

這個函式主要是為了輔助pytorch中的一些其他函式,主要包含在pytorch中,有一些對tensor的操作不會真正改變tensor的內容,改變的僅僅是tensor中位元組位置的索引。這些操作有 narrow view expand 和transpose 在執行這幾個函式之前,需要先把variabl...