真的是很話嘮的在下了。
昨天沒有很完整的學習,就沒有發佈筆記了。
昨天主要是匆匆忙忙的回家了,買了好吃的法棍回家,好吃的法棍簡直是戰鬥力的最佳保證!
而後和家裏人聊聊天,其實平時對着電腦多了,對着電腦聊天老是不如面對面來的有感受。
PS:可是仍是很討厭接到工做上的徹底沒邏輯的電話的。
2018的最後兩天。
我很想念小胡哥哥,大概這個地方他都看不到的吧,畢竟學術上咱們倆的交叉是極少的。
但願2019年會變成更好的本身,也能擁有更多掌握本身生活的能力。python
簡單打點雞血吧!
大學時候很喜歡的一段話。
每個優秀的人,都有一段沉默的時光。那一段時光,是付出了不少努力,忍受孤獨和寂寞,不抱怨,不訴苦,往後提及時,連本身都能被感動的日子。編程
不一樣於高數裏的偏函數。
這個屬於Python的functools
裏提供的一個頗有用的功能。
主要用於,設定函數的默認值,但並不改變原有的函數。
好比對int()
函數設定額外的參數base=8
改成八進制來進行整數轉化。windows
#正常狀況下 int('12345',base = 8) #或者咱們考慮本身定義個函數int2 def int2(x,base=8): return int(x,base)
而functools.partial
就不須要本身另外定義函數。app
import functools int2 = functools.partial(int,base=2)
此時int2()
就是建立出來的一個全新的函數。函數
簡單總結functools.partial的做用就是,把一個函數的某些參數給固定住(也就是設置默認值),返回一個新的函數,調用這個新函數會更簡單。
然鵝這個偏函數,還能夠在另外加入參數。工具
當函數的參數個數太多,須要簡化時,使用functools.partial能夠建立一個新的函數,這個新函數能夠固定住原函數的部分參數,從而在調用時更簡單。
在使用中應該要多考慮下使用場景,又是反覆使用偏函數可能會產生反效果(我的感受,還須要實踐測試)。學習
模塊要儘量的不和內置函數產生衝突。
爲了避免和別人的模塊衝突,因此有了包。包名不衝突,那全部的模塊就不會衝突了。
每個包目錄下面都會有一個__init__.py
的文件,這個文件是必須存在的,不然,Python就把這個目錄當成普通目錄,而不是一個包。
由於有了包,有了模塊,因此能夠產生多級的文件樹。測試
sys
模塊下有一個argv
參數,用list存儲命令行的全部參數。
因此argv
一定有至少一個參數,就是文件名。spa
if __name__=='__main__': test()
當命令行運行hello
模塊文件時候,Python解釋器把特殊變量__name__
置爲__main__
,而若是在其餘地方導入該hello
模塊時候,if
判斷將失效。命令行
好比當進入交互模式時候,導入hello
模塊,不會直接執行test()
函數,須要調用。
在Python裏,咱們經過_
前綴來實現私有變量。
分爲正常的朋友、特殊的朋友、和暗搓搓的朋友。
正常的朋友就是正常能夠直接引用的。
特殊的朋友,好比__xx__
這個樣子的,雖然能夠被直接引用,可是有特殊用途。好比能夠暴露我身份的__author__
就是特殊變量啦。
而後_xx
這個樣子的朋友,就是暗搓搓的朋友們啦,非公開的,不該該直接被引用。
def _private_1(name): return 'Hello, %s' % name def _private_2(name): return 'Hi, %s' % name def greeting(name): if len(name) > 3: return _private_1(name) else: return _private_2(name)
在模塊內公開greeting()
函數,可是內部邏輯用私有函數隱藏,這樣調用的時候就不考慮內部邏輯。
很是有用的代碼封裝和抽象的方法
外部須要引用的函數才定義爲public,不須要引用的所有定義成private
在Python中,安裝第三方模塊,是經過包管理工具pip完成的。
然鵝這一步,在Mac或者Linux下是不須要安裝pip的。(悲傷的windows鵝,幸虧安裝Python的時候妥妥安裝了
第三方庫通常都有官方註冊
用Anaconda,一個基於Python的數據處理和科學計算平臺,已經內置不少有用的第三方庫。
Anaconda會把系統Path中的python指向本身自帶的Python,而且,Anaconda安裝的第三方模塊會安裝在Anaconda本身的路徑下,不影響系統已安裝的Python目錄。
能夠嘗試直接import numpy
等已安裝的第三方模塊
添加本身的搜索目錄,有倆辦法
sys.path
,添加要搜索的目錄import sys sys.path.append('/user/gaga/my_py_scriptss')
-設置環境變量PYTHONPATH
,不影響Python自身的搜索路徑。
emmm,真是個使人悲傷的標題。
Object Oriented Programming--->因此OOP纔是一種程序設計思想嗎?....只是思想....
OOP把對象做爲程序的基本單元,一個對象包含了數據和操做數據的函數。
忽然以爲OOP是一個很浪漫的思想。(題外話)
面向對象的設計思想是抽象出Class,根據Class建立Instance。
面向對象的抽象程度又比函數要高,由於一個Class既包含數據,又包含操做數據的方法。
類的定義是使用class
關鍵字。
-----困了的分界線,明日繼續分解下一回合...(好像明日2019年??? 今晚小酌一杯再來繼續!