国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

列舉Python中吸引人的一些特性

2020-02-23 00:37:58
字體:
供稿:網(wǎng)友

這里我不討論 python 的一些有用的庫或者框架,只從語言本身,最小支持的情況下談論這門語言本身。語言的發(fā)展都是越來越接近Lisp,這也是Lisp這門語言偉大的原因。

下面我羅列一下我學習 python 的原因:
多編程范式

python是一門多范式的編程語言,所謂的過程式,面向?qū)ο蠛秃瘮?shù)式的結合。

大部分人接觸編程語言都是從過程式開始的,原因是因為過程式的程序方式與計算機運行方式是統(tǒng)一的,指令序列與運行過程是統(tǒng)一的。如典型的C,我也是從C開始學習的,過程式的程序語言設計編寫程序較為簡單,但是符合人機交互思考方式。

python雖然是一門面向?qū)ο笳Z言,就連“ ”(空格)也可以看做是一個對象,但是python勝任過程式是沒有問題的。

如不需要使用類的靜態(tài)方法:

 def a_plus_b(a,b):   return a+b

1. Duck typing

Python在設計的時候?qū)⑵洚斪鲆婚T面向?qū)ο蟮姆绞骄帉懀也徽f面向?qū)ο蠼o軟件設計帶來的一些革命等,在python這樣的動態(tài)語言中面向?qū)ο笥幸粋€亮點就是Duck typing(鴨子類型)。

關于鴨子類型,就是說,如果我認為一個抽象的東西會游泳會“嘎嘎”叫,我就可以把它當做鴨子。

 def use_duck( Duck ):   Duck.swim()   Duck.gaga() class Duck:   def swim(self):     ...   def gaga(self):     ...

如果這樣使用:
 little_duck = Duck()
 use_duck( little_duck )

關于Duck類,你可以給他取任何的名字,或者繼承它取另一個名字,只需要實現(xiàn) swim() gaga() 你就可以把它當做鴨子。

關于鴨子類型,很多人不理解為什么不需要提供一個接口來規(guī)定鴨子的行為,我既不支持也不反對,我的觀點是這樣的:

    對于參數(shù)的檢查,不符合動態(tài)語言的特性     提供了接口規(guī)范,那就不是鴨子類型了,直接叫多態(tài)得了

2. Python支持的函數(shù)式編程

首先是lambda 演算。

函數(shù)式編程的定義是將函數(shù)看做是變量一樣的待遇,變量在程序中最簡單的有什么待遇呢?

    可以賦值     可以作為參數(shù)     可以改變值(Erlang例外)     且不說生命周期了和作用域了

λ演算背后蘊含著計算機可計算性的深厚知識,lambda也是圖靈模型,是停機問題的一個否定答案,不僅僅是一個匿名函數(shù)那樣簡單。

關于 lambda 演算,看看這個程序做了什么:

 map(lambda n:2*n,[1,2,3,4,5])

    lambda n:2*n 本身作為一個匿名函數(shù)
    lambda 本身作為一個參數(shù)傳入 map()函數(shù),這也就是說我的高階函數(shù),可以將函數(shù)變身看成是一個變量作為參數(shù)傳遞,這也是它作為函數(shù)受到的高等待遇

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湟中县| 新绛县| 大荔县| 龙陵县| 图们市| 建德市| 迁安市| 客服| 泰顺县| 贞丰县| 兖州市| 信阳市| 淮滨县| 星座| 房产| 安塞县| 万全县| 道孚县| 景德镇市| 兰溪市| 兴海县| 丹寨县| 关岭| 新干县| 衡南县| 通海县| 玛曲县| 永平县| 油尖旺区| 永城市| 罗山县| 新昌县| 仁怀市| 常山县| 双柏县| 吉水县| 福州市| 沂南县| 云霄县| 苏尼特左旗| 夏河县|