c# python 相互调用_【GhPython】Python如何使用“委托”和lambda表达式
【版權聲明】
|?作者:月之眼
| 首發于大水牛參數化設計平臺
| 如需轉載請聯系作者
|?如果覺得文章不錯,歡迎分享?
?函數作為參數傳入?
在python中函數是能作為參數輸入函數的。這個有點類似于C#中的委托,將一個函數封裝到一個委托對象里,再將這個委托對象傳入函數進行調用。這里寫一個簡單的C#案例,大概理解“委托”的概念就行。
下面我們來看看python如何實現上面的效果。
這里我們可以看到調用Test(list,func)函數時候,我們將一個函數傳入了Test函數的第二個參數,第二個參數func直接在函數內調用了。就和C#中的“委托”調用一樣。
利用委托寫代碼可以將代碼封裝的更好,不用頻繁修改函數內部的代碼。讓代碼更加的靈活。我們再看應用之前我們先看看匿名方法lambda表達式。
?lambda表達式?
有時候我們在定義一次性函數的時候(只調用一次的函數),我們就可以采用匿名函數來處理。我們將上面的C#代碼進行簡化,效果如下(不能理解也沒事,看看就行)
我們再將上面的python代碼進行簡化。我們用lambda關鍵字聲明了一個參數為num的匿名函數,并將這個函數賦值給了F變量名。
我們直接在調用Test函數的時候定義lambda表達式,這樣看起來更像C#的lambda表達式。
?綜合應用?
函數有個很重要的概念就是對代碼的封裝,減少代碼的重復使用。
這里我舉個簡單的例子:比如我們要寫一個函數把列表中的偶數項選擇出來,寫另一個函數把列表中小于某個值的項選取出來。
求列表中的偶數項
求列表中小于某個值的項
然后我們利用上面學習的“委托”和lambda表達式將上面的代碼合并成一個,這樣我們只需要調用的時候更改輸入的條件就行了,Test函數內的代碼是不需要改動的。
最后再講一下利用列表解析將函數進行簡化,關于列表解析可以查看這個鏈接:python列表解析
往期精彩文章回顧:
【Python】Gh如何選中Rhino中圖層的物體
【Python】如何循環標注
【Processing教程6】----Minim的簡單運用
【Processing 教程 5】 ----PeasyCam 和 gHowl
【Processing教程4】----library的簡單運用
【Processing 教程3】--Arry和For Loop
【Processing 教程 2 】----- function
【Processing 教程1】--界面和參數介紹
【號外,號外】大家期待已久的Processing教程來啦
【Python】一鍵標注封閉多重直線
【Python】通過python刪除指定名稱的電池
【分分鐘建模系列20】如何路徑分組
【分分鐘建模系列19】如何用RhinoPython實現“向日葵”開洞
【分分鐘建模系列18】如何用Rhino做垂直格柵
【分分鐘建模系列08】山寨一個教堂
【分分鐘建模系列07】做個扭轉建筑
【分分鐘建模系列】SoftMove命令的簡單應用
【分分鐘建模系列】手把手教你做旋轉樓梯
【分分鐘建模系列】手把手教你做表皮
【分分鐘建模系列05】手把手教你做編織
【分分鐘建模系列06】手把手教你做個凳子
【分分鐘建模系列09】如何用犀牛手工做灰階度干擾
【分分鐘建模10】MAD中國國家美術館
【分分鐘建模教程系列11】Big的W大樓
【分分鐘建模教程系列12】如何做一個漂亮的樓梯
【分分鐘建模教程系列13】如何做曲面干擾
【分分鐘建模系列14】如何快速打斷相交的曲線
【分分鐘建模系列15】如何用Grasshopper建一座橋梁
【分分鐘建模系列16】茶幾建模
【分分鐘建模系列17】BIG蛇形畫廊的建模案例
【Bubalus_RH for Rhino6】選擇“選中物體”所在的圖層
【Grasshopper】Anemone插件的應用
大水牛參數化設計是一個傳播分享建筑數字化設計與數字化建造資訊的平臺
并且會不斷連載原創或轉載有價值的參數化軟件教程
(Rhino、Grasshopper、Python、Revit、Processing等等)
是一個視野與技術并重的數字化傳播平臺
我們的目標是把這個平臺創造成一個擁有良好氛圍的學習平臺
我們將帶頭沖鋒;我們的立場非常堅定
我們的狂怒你駕馭不住;黎明就在眼前
歡迎你們加入我們的戰隊
記住我們不是一個人在戰斗
點擊關注微信公共號,獲取更多精彩內容
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的c# python 相互调用_【GhPython】Python如何使用“委托”和lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: servlet post 返回值是一个对
- 下一篇: python里面返回上一步_Python