Day08-函數(3)

?

?

import functools
#偏函數
def demo(a,b,c,d):print(a,b,c,d)# def partital_demo(a,b):
#     demo(a,b,3,4)
# partital_demo(1,2)#實現偏函數
# #固定前兩個
# demo = functools.partial(demo,5,6)
# demo(10,50)# #固定后兩個
# demo=functools.partial(demo,c=3,d=5)
# demo(1,2)#固定任意參數
demo= functools.partial(demo,b=5,c=6)
demo(a=1,d=1)# 變量作用域:能夠引用變量的代碼段就叫做這個變量的作用域
# 1  if while try-except 這些不引入新的作用域
# if 3 > 0:
#     a = 1
# print(a)# 全局作用域:在所有的函數外定義變量
# 范圍:從定義開始,到本文件結束 中間處處可見a = 3def demo():a = 5print("demo", a)a = 5  # 局部作用域,局部變量;范圍:整個函數體print(a)demo()
print(a)# 內部函數
def test():c = 10  # 閉包作用域 :從定義開始到結束# 內部函數def inner():  # 作用域是局部作用域b = 10print("inner", b)inner()inner()  # 不能在外部引用內部函數 報錯test()# 內建作用域:所有文件可用,系統函數、變量都是內建作用域
print(max(1,2,3))
#
# n內鍵作用預> 全局作用域>閉包作用域>局部作用域a = 3
c = 6
def outter():a = 1b = 3print("outter",a,b)def inner():b = 5print("inner",b)print("c=",c)print("a=",a)inner()# 變量查找規則:從變量引用的地方開始向上找,找離他最近的變量
outter()# 在函數里無法直接修改全局變量
a = 10
print(id(a))
def test():global a  #告訴python解釋器,以下引用的是全局變量,并可以修改# a+=1# print(id(a))a = 10print(id(a))print(a) #6
test()
print(a) #6def outter():c= 10def inner():nonlocal c #專門用于修改閉包作用域c+=1 #不允許直接修改閉包作用域的變量print(c)inner()
outter()def outter():#外部函數a = 1def inner(): #內部函數print(a)inner()
outter()#
# def outter():#外部函數
#     a = 1
#     def inner(): #內部函數
#         print("inner",a)
#     return inner
# #得到內部函數地址
# res = outter()
# res() #調用內部函數
#要增強功能的函數
def eat():print("我喜歡吃水果")#裝飾器
# 參數:必須要把增強的函數傳進來
def magic(func):def inner():func() #調用原來的函數#增強的功能print("我喜歡吃炸雞")print("我喜歡吃山珍海味")return inner
eat = magic(eat)
eat()#裝飾器
# 參數:必須要把增強的函數傳進來
def magic(func):def inner():func() #調用原來的函數#增強的功能print("我喜歡吃炸雞")print("我喜歡吃山珍海味")return inner
@magic      #@外部函數 eat = magic(eat)
#要增強功能的函數
def eat():print("我喜歡吃水果")
eat()#裝飾器
# 參數:必須要把增強的函數傳進來
def magic(func):def inner(tmp):func(tmp) #調用原來的函數#增強的功能print("我喜歡吃炸雞")print("我喜歡吃山珍海味")return inner
@magic      #@外部函數 eat = magic(eat)
#要增強功能的函數
def eat(food):print("我喜歡吃{}".format(food))
eat("臭豆腐")#裝飾器
# 參數:必須要把增強的函數傳進來
def check_login(func):def inner(password):if password == '123':func(password)#執行原來功能else:print("密碼錯誤,重新輸入")return inner  #外部函數的返回值@check_login     #@外部函數 forum = check_login(forum)
#要增強功能的函數
def forum(password):print("發帖:印度")@check_login
def comment(password):print("韓國人更厲害")forum('123')

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457101.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457101.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457101.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用VS2010編譯Qt 5.6.1過程記錄

由于Qt官方發布的Qt 5.6.1二進制安裝包沒有對應VS2010版本的,而我的電腦上只安裝了VS2010,因此只能自己編譯。 本文記錄本人的編譯安裝過程,以及其中遇到的一些問題。 本文使用VS2010 32位編譯Qt 5.6.1。 1. 下載Qt源代碼 Qt源代碼下載地址&…

golang 指針

指針1、簡單的定義一個指針package mainimport "fmt"func main(){var p *inti :2p &ifmt.Println("memory address i:",p) } //執行結果: memory address i: 0xc42000a2e02、打印指針的值package mainimport "fmt"func main(){v…

php防錯處理,更好的PHP錯誤處理

錯誤類型PHP 主要有兩種錯誤:觸發錯誤和異常。其中觸發錯誤大概可以分為:編譯錯誤、引擎錯誤和運行時錯誤,其中前兩個是無法捕獲的;異常都是可以捕獲的,當沒有嘗試捕獲時則會中斷代碼。觸發錯誤可以通過 error_get_las…

Windows安裝Apache注冊服務出現(OS 5)拒絕訪問。 : AH00369: Failed to open the Windows service manager,

windows安裝Apache,注冊服務出現“(OS 5)拒絕訪問。 : AH00369: Failed to open the WinNT service manager..."錯誤 在安裝Apache的時候,我下載的是zip格式,不是msi安裝版,需要自己注冊服務,才能在桌面任務欄里有…

算法與數據結構(三) 二叉樹的遍歷及其線索化(Swift版)

前面兩篇博客介紹了線性表的順序存儲與鏈式存儲以及對應的操作,并且還聊了棧與隊列的相關內容。本篇博客我們就繼續聊數據結構的相關東西,并且所涉及的相關Demo依然使用面向對象語言Swift來表示。本篇博客我們就來介紹樹結構的一種:二叉樹。在…

關于android開發時,發生Error infalting classa com.baidu.mapapi.map.MapView的解決辦法

1.問題描述:百度地圖SDK中 Error: infalting classa com.baidu.mapapi.map.MapView 。 2.解決辦法:通過1個多小時的上網搜索,最終發現很多網友之所以出現這方面的問題有以下幾種原因: (1).忘…

c++動態綁定的技術實現

1 什么是動態綁定 有一個基類,兩個派生類,基類有一個virtual函數,兩個派生類都覆蓋了這個虛函數。現在有一個基類的指針或者引用,當該基類指針或者引用指向不同的派生類對象時,調用該虛函數,那么最終調用的…

linux替換某個文件夾下所有文件,Linux 批量查找并替換文件夾下所有文件的內容...

1.批量查找某個目下文件的包含的內容cd etcgrep -rn "查找的內容" ./2.批量替換某個目下所有包含的文件的內容cd etcsed -i "s/查找的內容/替換后的內容/g" grep -rl "查找的內容" ./3.批量查找并替換任意文件夾下的文件內容。sed -i "s/要…

Day09-遞歸

#模擬棧結構 stack [] #壓棧(想棧里存數據) stack.append("A") print(stack) stack.append("B") print(stack) stack.append("C") print(stack)#出棧(在棧里取數據) res stack.pop() print("…

java中String相等問題

判斷兩個字符串是否相等的問題。在編程中,通常比較兩個字符串是否相同的表達式是“”,但在java中不能這么寫。在java中,用的是equals(); 例:A字符串和B和字符串比較: if(A.equals(B)){ } 返回true 或false. String 的equals 方法用于比較兩個…

linux proc文件 write的原子性,linux - Linux中writev()系統調用的原子性 - 堆棧內存溢出...

在fs.h找到它:static inline void file_start_write(struct file *file){if (!S_ISREG(file_inode(file)->i_mode))return;__sb_start_write(file_inode(file)->i_sb, SB_FREEZE_WRITE, true);}然后在super.c:/** This is an internal function, p…

關于對發送HTTP請求以及解析服務器返回的數據操作的提取到一個公共類中進行封裝

創建一個名為HttpUtil的類并提供名為sendHttpRequest靜態方法.相關代碼如下: package com.hzy.networktest;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;p…

初始化CSS

不同的瀏覽器默認樣式不一樣,所以容易出現兼容性問題,每次寫網頁時都應該都網頁的css或HTML標簽進行初始化 這樣可以節約代碼,節約網頁下載時間,是網頁內容更加簡潔, 大致需要初始化的地方有 H1-H4標簽,table標簽,文字大小,文字沒有鏈接,超鏈接樣式,DIV,居中,ol,ul,li,img等等的…

Day10-時間

UTC(世界協調時間):格林尼織天文時間 在中國來說是UTC8 DST(夏令時):是一種節約能源而人為規定時間制度,在夏季調快一個小時時間的表示形式: 1、時間戳 以整形或浮點型表示時間的一個以秒為單位的時間間隔 …

WebForm 分頁與組合查詢

1.封裝實體類 2.寫查詢方法 //SubjectData類 public List<Subject> Select(string name){List<Subject> list new List<Subject>();cmd.CommandText "select *from Subject where SubjectName like a ";cmd.Parameters.Clear();cmd.Parameters.A…

linux如何輸出當前時間,如何在linux下輸出當前時間

用localtime可直接分解出年月日時分秒QUOTE:struct tm *ptm;long ts;int y,m,d,h,n,s;ts time(NULL);ptm localtime(&ts);y ptm->tm_year1900; //年m ptm->tm_mon1; //月d ptm->tm_mday; //日h ptm->tm_hour; //時n ptm->tm_min; //分s ptm->tm_…

node.js簡單爬蟲

這里假設你已經安裝好node.js和npm&#xff0c;如果沒有安裝&#xff0c;請參閱其他教程安裝。 配置首先是來配置package.json文件&#xff0c;這里使用express,request和cheerio。package.json如下&#xff1a; {"name": "node-scrape","version&quo…

Day11-遞歸性能測試

import time time.clock() sum 0 for i in range (1000000000):sumi print(time.clock()) 慎用 慎用 慎用

關于在新建的package中用SetContentView()函數時無法找到已創建的R.layout的布局文件的的問題的解決辦法

問題描述如下&#xff1a; 解決途徑&#xff1a;是在導入包的過程中&#xff0c;錯誤的將系統自動將Android.R這個包導入最終導致用setContenView()加載布局時只能顯示系統自帶的布局&#xff0c;無法顯示自己已經創建的布局。只需將相應活動中導入的Android.R包刪除&#xff0…

Struts2入門(二)——配置攔截器

一、前言 之前便了解過&#xff0c;Struts 2的核心控制器是一個Filter過濾器&#xff0c;負責攔截所有的用戶請求&#xff0c;當用戶請求發送過來時&#xff0c;會去檢測struts.xml是否存在這個action&#xff0c;如果存在&#xff0c;服務器便會自動幫我們跳轉到指定的處理類中…