python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...
P82-遞歸函數-階乘計算案例
#使用遞歸函數計算階乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=factorial(5)print(result)#分行幾何P83-嵌套函數-內部函數-數據隱藏
嵌套函數:在函數內部定義的函數
分形幾何
什么情況下使用嵌套函數?
封裝-數據隱藏
外部無法訪問嵌套函數
貫徹DRY(Dont repeat yourself)的原則
嵌套函數,可以讓我們在函數的內部避免重復的代碼
閉包
后面會詳細講解
P84-nonlocal_global
nonlocal關鍵字
nonlocal
用來聲明外層的局部變量
global
用來聲明全局變量
【操作】使用nonlocal聲明外層的局部變量
#測試nonlocal,global關鍵字的用法def outer(): b=10def inner():nonlocal b #聲明外部函數的局部變量 print("innner",b)#b=20直接b=20就會報錯,必須要先聲明一下 inner() print("outer b:",b)outer()print("a:",a)P85?LEGB規則
Enclosed指的是嵌套函數,一個函數包裹另一個函數,閉包
如果某一個name映射在局部(local)命名的空間當中沒有找打,接下來就會在閉包作用域(enclosed)進行搜索,如果閉包作用域也沒有找到,Python就會找到全局(global)命名空間當中進行查找,最后會在內建(built-in)命名空間當中進行搜索(如果一個名稱在所有的命名空間當中都沒有找到,就會產生一個NameError)
#測試LEGBprint(str(30))print(type(str))#str="global str"def outer():#str="outer"def inner():#str="inner" print(str)pass inner()outer()P86面向對象和面向過程的區別-執行者的思維
第六章 面向對象的編程
面向對象(Object oriented Programming,OOP)編程的思想主要是針對大型的軟件設計而來的,面向對象的編程使程序的擴展性更強,可讀性更好,使得編程可以像搭積木一樣的簡單,面向對象將數據和操作數據的相關的方法封裝到對象當中,組織代碼和數據的方式更加接近人的思維,從而大大提高了編程的效率
??? Python完全采用了面向對象的思想,是真正面向對象的編程語言,完全支持面向對象的基本功能,例如:繼承,多態,封裝等
Python當中,一切皆對象,我們在前面學習的是數據類型,函數等,都是對象
注意:Python支持面向過程,面向對象,函數式編程等多種編程范式
面向對象和面向過程的區別
面向過程(Procedure Oriented)思維
面向過程編程更加關注的是程序的邏輯流程,是一種執行者的思維,適合編寫小規模的程序,
面向過程思想思考問題的時候,我們首先思考“怎么按照步驟實現”,并將步驟對影成方法,一步一步,最終完成,這個時候簡單的任務,不需要過多的協作的情況下,比如:如何開車?我們很容易就列出了時間的步驟
發動車2,掛擋3踩油門4走你
面向過程適合簡單,不需要協作的事務,但是當我們思考比較復雜的問題的時候,比如:“如何造車?”就會列出1234這樣的步驟,這是不可能的,那是因為造車太復雜,需要很多的協作才能夠完成,此時面向對象的思想就營運而生了。
面向對象(object oriented)思維
????面向對象更加關注的是軟件當中對象之間的關系,是一種設計者思維,適合編寫大規模的程序。
歡迎打賞,么么噠!
●R語言
●句子
●JAVA
●C語言以及算法筆記
●大學生生活圖鑒
●JavaScript
●計算機網絡原理
●計算機組成原理
●操作系統
●數據庫系統概論
●數據結構
●英語
●Linux
●數字圖像處理
●云計算與人工智能
●資源
●明星電視劇社會現象娛樂
Python
仙女都在看點點點,贊和在看都在這兒!總結
以上是生活随笔為你收集整理的python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java开发和python哪个好学_学编
- 下一篇: 布林通道参数用20还是26_“布林强盗”