摘要:比較喜歡的裝飾器試了下一種用法,通過(guò)裝飾器來(lái)傳遞,并執(zhí)行返回結(jié)果這個(gè)應(yīng)用應(yīng)該比較少為了方便起見(jiàn),直接使用了連接的算是為了好玩吧,回看了下,可能實(shí)際用的機(jī)會(huì)不多
比較喜歡python的裝飾器, 試了下一種用法,通過(guò)裝飾器來(lái)傳遞sql,并執(zhí)行返回結(jié)果
這個(gè)應(yīng)用應(yīng)該比較少
為了方便起見(jiàn),直接使用了ironpython, 連接的mssql server
# -*- coding: utf-8 -*- import clr clr.AddReference("System.Data") from System.Data import * from functools import wraps conn_str = "server=localhost;database=DB_TEST;uid=sa;password=sa2008" def mssql(sql): def handler_result(rs): rst = [] while rs.Read(): rst.Add(rs[0]) return rst def decorator(fn): @wraps(fn) def wrapper(*args, **kwargs): TheConnection = SqlClient.SqlConnection(conn_str) TheConnection.Open() try: MyAction = SqlClient.SqlCommand(sql, TheConnection) MyReader = MyAction.ExecuteReader() except Exception,ex: raise AssertionError(ex) rst_data = handler_result(MyReader) kwargs["sql_rst"] = rst_data result = fn(*args, **kwargs) MyReader.Close() TheConnection.Close() return result return wrapper return decorator @mssql(sql="Select getdate()") def get_data(sql_rst=""): print sql_rst[0] get_data()
算是為了好玩吧,回看了下,可能實(shí)際用的機(jī)會(huì)不多
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37496.html
摘要:里,有兩種方法獲得一定范圍內(nèi)的數(shù)字返回一個(gè)列表,還有返回一個(gè)迭代器。在引用計(jì)數(shù)的基礎(chǔ)上,還可以通過(guò)標(biāo)記清除解決容器對(duì)象可能產(chǎn)生的循環(huán)引用的問(wèn)題。列舉常見(jiàn)的內(nèi)置函數(shù)的作用,過(guò)濾函數(shù),循環(huán)函數(shù)累積函數(shù)一行代碼實(shí)現(xiàn)乘法表。 showImg(https://segmentfault.com/img/remote/1460000019294205); 1、為什么學(xué)習(xí)Python? 人生苦短?人間...
摘要:正確的思路是等概率隨機(jī)只取出共個(gè)數(shù),每個(gè)數(shù)出現(xiàn)的概率也是相等的隨機(jī)輸出把一段代碼改成,并增加單元測(cè)試。代碼本身很簡(jiǎn)單,即使沒(méi)學(xué)過(guò)也能看懂,改后的代碼如下但是對(duì)于單元測(cè)試則僅限于聽(tīng)過(guò)的地步,需要用到,好像也有別的模塊。 在拉勾上投了十幾個(gè)公司,大部分都被標(biāo)記為不合適,有兩個(gè)給了面試機(jī)會(huì),其中一個(gè)自己覺(jué)得肯定不會(huì)去的,也就沒(méi)有去面試,另一個(gè)經(jīng)歷了一輪電話面加一輪現(xiàn)場(chǎng)筆試和面試,在此記錄一下...
摘要:在學(xué)習(xí)的時(shí)候,三大名器對(duì)沒(méi)有其他語(yǔ)言編程經(jīng)驗(yàn)的人來(lái)說(shuō),應(yīng)該算是一個(gè)小難點(diǎn),本次博客就博主自己對(duì)裝飾器迭代器和生成器理解進(jìn)行解釋。 在學(xué)習(xí)python的時(shí)候,三大名器對(duì)沒(méi)有其他語(yǔ)言編程經(jīng)驗(yàn)的人來(lái)說(shuō),應(yīng)該算是一個(gè)小難點(diǎn),本次博客就博主自己對(duì)裝飾器、迭代器和生成器理解進(jìn)行解釋。 裝飾器 什么是裝飾器?裝飾從字面意思來(lái)誰(shuí)就是對(duì)特定的建筑物內(nèi)按照一定的思路和風(fēng)格進(jìn)行美化的一種行為,所謂器就是工具...
摘要:哈哈,這又是為什么呢細(xì)心的同學(xué)可能會(huì)發(fā)現(xiàn),的返回值是一個(gè)類型的,所以上邊并沒(méi)有屬性,的兩個(gè)屬性也是如此。我們通過(guò)在函數(shù)上邊添加一個(gè)范型的定義,并且添加限制保證傳入的范型類型一定是繼承自的,在返回值轉(zhuǎn)換其類型為,就可以實(shí)現(xiàn)功能了。 如果是經(jīng)常使用Node來(lái)做服務(wù)端開(kāi)發(fā)的童鞋,肯定不可避免的會(huì)操作數(shù)據(jù)庫(kù),做一些增刪改查(CRUD,Create Read Update Delete)的操作,...
摘要:最近看到一個(gè)關(guān)于的題文章其中的一個(gè)是裝飾器的順序問(wèn)題就想寫(xiě)篇博客回顧下裝飾器首先強(qiáng)烈推薦很久之前看的一篇博文翻譯理解中的裝飾器關(guān)于什么是裝飾器看這篇文章就好了這里主要想寫(xiě)關(guān)于多個(gè)裝飾器的執(zhí)行流程裝飾順序示例代碼初始化初始化輸出結(jié)果初始化初始 最近看到一個(gè)關(guān)于Flask的CTF(RealWorld CTF 2018 web題bookhub)文章其中的一個(gè)trick是裝飾器的順序問(wèn)題,就想...
閱讀 2326·2021-09-22 15:27
閱讀 3178·2021-09-03 10:32
閱讀 3506·2021-09-01 11:38
閱讀 2503·2019-08-30 15:56
閱讀 2220·2019-08-30 13:01
閱讀 1543·2019-08-29 12:13
閱讀 1425·2019-08-26 13:33
閱讀 899·2019-08-26 13:30