閱讀目錄一多態多態指的是一類事物有多種形態動物有多種形態:人,狗,豬importabcclassAnimal(metaclass=abc.ABCMeta):#同一類事物:動物@abc.abstractmethoddeftalk(self):passclassPeople(Animal):#動物的形態之一:人deftalk(self):print('sayhello')classDog(Animal):#動物的形態之二:狗deftalk(self):prin
系統 2019-09-27 17:53:09 1934
什么是特殊方法?當我們在設計一個類的時候,python中有一個用于初始化的方法$__init__$,類似于java中的構造器,這個就是特殊方法,也叫作魔術方法。簡單來說,特殊方法可以給你設計的類加上一些神奇的特性,比如可以進行python原生的切片操作,迭代、連乘操作等。在python中,特殊方法以雙下劃線開始,以雙下劃線結束。一個大例子數學中有一個表示數的概念叫做向量,但是python中的數據類型卻沒有。我們來設法用python實現它。首先考慮,向量跟普
系統 2019-09-27 17:53:07 1934
3.4.5斷言斷言(assertions)的使用方式類似于if語句,只是在不滿足條件時,會直接拋出異常。類似于下面的if語句(偽代碼)ifnotcondition:#如果不滿足條件,會直接拋出異常,程序會中斷crashprogram那么究竟為什么需要這樣的代碼呢?主要原因為需要檢測程序在某個地方是否滿足條件,如果不滿足條件,應該及時通知開發人員,而不是將這些bug隱藏起來,知道關鍵的時候在崩潰。其實在TDD中經常使用斷言,TDD會在程序發現異常時執行斷言,
系統 2019-09-27 17:52:20 1934
yield的功能類似于return,但是不同之處在于它返回的是生成器。生成器生成器是通過一個或多個yield表達式構成的函數,每一個生成器都是一個迭代器(但是迭代器不一定是生成器)。如果一個函數包含yield關鍵字,這個函數就會變為一個生成器。生成器并不會一次返回所有結果,而是每次遇到yield關鍵字后返回相應結果,并保留函數當前的運行狀態,等待下一次的調用。由于生成器也是一個迭代器,那么它就應該支持next方法來獲取下一個值。基本操作#通過`yield`
系統 2019-09-27 17:52:18 1934
基礎版(list方法)#比較占內存w=int(input("輸入一個數字還你一個斐波那契數列:"))list_res=[]deflist_n(n):ifn>=3:res=list_n(n-1)+list_n(n-2)else:res=1returnresprint("開始")foriinrange(0,w):list_res.append(list_n(i+1))print(list_res)升級版#比較占內存num=int(input("輸入一個數字還你
系統 2019-09-27 17:52:01 1934
函數這么重要的東西自然少不了。那么在python中是怎么定義的呢?defcgg(name):print("haha%s"%name)def是定義的意思,而cgg是函數名,name是參數。當然了,有了函數嗎,自然少不了函數的返回值。那么這里用的依然是return。defcgg(a,b):returna+b模塊一個小例子:importtimeprint(time.asctime())這個可以顯示現在的時間。而這個time就是一個模塊,包括之前的turtle也是
系統 2019-09-27 17:51:49 1934
walker經常用到當前時間和相對時間,用來統計程序執行的效率,簡單記一下,便于copy。相對時間>>>importtime#相對時間>>>startTime=time.time()>>>'%.2fs'%(time.time()-startTime)'24.51s'格式化當前時間#格式化當前時間>>>time.strftime('%Y-%m-%d%H:%M:%S',time.localtime())'2016-01-0510:34:06'時間戳與時間的轉換
系統 2019-09-27 17:50:52 1934
python&djangologging小結[TOC]python基本一次配置,多處生效importlogginglogging.basicConfig(format='%(asctime)s%(message)s',datefmt='%m/%d/%Y%I:%M:%S%p')logging.warning('iswhenthiseventwaslogged.')>>>12/12/201011:46:36AMiswhenthiseventwaslogged.
系統 2019-09-27 17:50:19 1934
Python在debug方面的支持還是不錯的,在明確代碼意義的情況下,通過log、print和assert分析錯誤原因,配合單元測試可以很高效。然而,實際工作中大量代碼很可能出自他人之手,這種情況下,使用debugger就顯得更加高效了。一、在控制臺下進行程序調試PDB如果你熟悉命令行調試工具(例如gdb、lldb),那么使用Python中的PDB將獲得非常好的體驗,PDB不僅支持項目啟動時進行調用,也支持在Pythonshell中交互式調試;功能上,支持
系統 2019-09-27 17:50:11 1934
1.遍歷一個文件夾apks='C:\\xxx'filenames=os.listdir(apks)forfilenameinfilesnames:#此處遍歷出來的非完整路徑,只是文件名字do_something(apks+"\\"+filename)#絕對路徑需要拼接處理2.判斷一個文件或文件夾是否存在importosos.path.exists(test_file.txt)3.string轉dict,dict轉string#string轉dict,使用e
系統 2019-09-27 17:48:45 1934