偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何進(jìn)行Python 代碼編寫

開發(fā) 后端
Python 代碼所具有的一個(gè)顯著優(yōu)勢(shì)就是可以在企業(yè)的軟件創(chuàng)建和維護(hù)階段節(jié)約大量資金,因此可以在使用的過程當(dāng)中感受到趣味性和吸引力。

Python 調(diào)用在日常工作中還是非常實(shí)用的,只需要Python函數(shù)就可以了,如果對(duì)Python 代碼不太了解,那就必須先要對(duì)下面就對(duì)進(jìn)行學(xué)習(xí),下面就對(duì)Python 代碼進(jìn)行系統(tǒng)的分析與研究。

在除去***的、有意義的語(yǔ)句不用而代之以晦澀的、嵌套的表達(dá)式的工作后,一個(gè)很自然的問題是:“為什么?!”我對(duì) FP 的所有描述都是使用Python 代碼做到的。但最重要的特性 -- 可能也是具體情況中最有用的特性。

它消除了副作用(或者至少對(duì)一些特殊領(lǐng)域,例如單一體,有一些牽制作用)。絕大部分程序錯(cuò)誤 -- 和促使程序員求助于調(diào)試來(lái)解決的問題 -- 之所以會(huì)發(fā)生,是因?yàn)樵诔绦驁?zhí)行過程期間,變量包含了意外的值。函數(shù)程序只不過根本就不為變量分配值,從而避免了這一特殊問題。

讓我們看一段相當(dāng)普通的命令代碼。它的目的是打印出乘積大于 25 的幾對(duì)數(shù)字的列表。組成各對(duì)的數(shù)字本身是從另外兩個(gè)列表中挑選出的。這種操作與程序員在他們程序段中實(shí)際執(zhí)行的操作差不多。#t#

實(shí)現(xiàn)這一目的的命令方法如下:這個(gè)項(xiàng)目太小,以至于沒有什么可能出錯(cuò)。但我們的目的可能嵌在要同時(shí)實(shí)現(xiàn)許多其它目的的代碼中。用 "more stuff" 注釋的那些部分是副作用可能導(dǎo)致錯(cuò)誤發(fā)生的地方。

在這些地方中的任何一處,變量 xs 、 ys 、 bigmuls 、 x 、 y 有可能獲得假設(shè)節(jié)略代碼中的意外值。而且,在執(zhí)行完這一段代碼后,所有變量都可能具有稍后代碼可能需要也可能不需要的一些值。

很明顯,可以使用函數(shù)/實(shí)例形式的封裝和有關(guān)作用域的考慮來(lái)防止出現(xiàn)這種類型的錯(cuò)誤。而且,您總是可以在執(zhí)行完變量后 del 它們。但在實(shí)際中,這些指出類型的錯(cuò)誤非常普遍。 目標(biāo)的函數(shù)方法完全消除了這些副作用錯(cuò)誤。以下是可能的一段代碼:

  1. bigmuls =   
  2.           
  3.           lambda 
  4.          xs,ys: filter(  
  5.           
  6.           lambda  
  7.          (x,y):x*y > 25, combine(xs,ys))  
  8. combine =   
  9.           
  10.           lambda 
  11.          xs,ys: map(None, xs*len(ys), dupelms(ys,len(xs)))  
  12. dupelms =   
  13.           
  14.           lambda 
  15.          lst,n: reduce(  
  16.           
  17.           lambda  
  18.          s,t:s+t, map(  
  19.           
  20.           lambda  
  21.          l,nn=n: [l]*n, lst))  
  22.           
  23.           print  
  24.          bigmuls((1,2,3,4),(10,15,3,22))  

在示例中,我們將匿名 Python 代碼與名稱進(jìn)行綁定,但這不是一定必要的。我們可以只嵌套定義。這樣做是出于可讀性目的;但也是因?yàn)?combine() 是一種隨處可得的很好實(shí)用程序函數(shù)(從兩個(gè)輸入列表中產(chǎn)生所有元素對(duì)的列表)。

隨后的 dupelms() 主要只是幫助 combine() 發(fā)揮作用的一種方法。即使這一函數(shù)示例比命令示例更冗長(zhǎng),但一旦考慮到實(shí)用程序函數(shù)可以重用,那么 bigmuls() 中的新代碼本身可能比命令版本中的代碼數(shù)量還要少一些。

這種函數(shù)示例真正的優(yōu)勢(shì)在于絕對(duì)不會(huì)有變量更改其中的任何值。稍后的代碼中沒有 可能的不曾預(yù)料到的副作用(較早的代碼中也不會(huì)有)。很明顯,它本身沒有副作用并不能保證代碼 正確,但即使這樣,這也是個(gè)優(yōu)點(diǎn)。不過請(qǐng)注意,Python 代碼(與許多函數(shù)語(yǔ)言不同)

 不能 防止名稱 bigmuls 、 combine 和 dupelms 的重新綁定。如果 combine() 在程序的稍后部分中開始有其它意義,則所有努力都前功盡棄。您可以逐步建立一個(gè) Singleton 類來(lái)包含這種類型的不可變綁定(例如 s.bigmuls 等);但本專欄并不涉及這一內(nèi)容。

責(zé)任編輯:chenqingxiang 來(lái)源: CSDN
相關(guān)推薦

2010-03-16 14:41:06

Java Runnab

2010-03-16 10:32:36

Java線程撥號(hào)器

2010-03-18 19:39:44

Java Socket

2024-02-22 10:27:00

Python開發(fā)

2010-03-12 17:35:00

Python字符串

2010-02-22 16:05:40

Python配置

2010-02-01 10:21:36

Python編碼轉(zhuǎn)換

2024-07-08 08:38:37

Python游戲開發(fā)

2010-05-28 12:55:23

2010-02-01 14:48:43

2010-02-01 17:33:24

Python主線程

2010-03-11 17:38:20

Python中文

2010-02-02 16:47:12

Python主線程

2010-03-15 15:11:50

Python列表

2010-02-01 18:20:17

Python 多重繼承

2012-10-15 09:30:04

CSSDIVWeb

2014-07-15 10:59:58

Spark代碼跟讀

2010-02-02 18:20:43

Python編寫

2010-03-01 16:32:36

Python語(yǔ)言

2010-02-22 17:12:34

Python對(duì)象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)