① python中參數為None是什麼意思
python函數參數為None的時候,比如
def
req(self,
b=None),是因為這個函數是一個封裝函數,在沒有調用他的時候他的參數需要加上None。如果不加None值,不調用函數他會報錯。
一般會用在封裝類或者框架里。比如說框架一般會有一個總的調用函數,總的調用函數啟動,這次沒有獲取到值,執行到req函數時無法給req函數參數,那如果沒有參數req函數就會報錯。一般會報:『req()
missing
1
required
positional
argument:
'b'』但是如果參數為None就不會報錯。如果程序執行到req參數傳遞成功的話,參數就不會是None了。
所以None是一個防止報錯的機制。
② python3中,定義一個函數,遍歷字元串,使用print後調用函數會有None,換成return結果又不對
第一個圖中,在執行 print(bianli__str('sjsjsj'))這句時,首先執行print括弧中的內容,即進入bianli__str函數,執行了函數中的print語句,列印的內容是字元串的每一個字元,然後退出函數,執行print這個操作,print的內容是你定義的函數,這個函數本身是沒有值的,所以是None
解決的方法就是調用函數的時候不用再print了,如下圖:
第二個圖中結果不對是因為return就會退出函數,所以打完第一個字元後就退出了