在程序開發過程中,我們通常會有很多的數據被重復的使用,重點使用,這個時候我們通常會將這個常用的數據定義成為一個全局變量或者常量,這樣我們在書寫代碼的時候不用一遍一遍的去重新定義內容,直接調用常量或者變量就可以了,不但可以減少代碼的重復,也可以精簡和美化代碼
在Python中,我們通常會在方法外面去定義全局變量,這樣我們就可以在其他方法中來靈活調用,定義的時候可以賦予變量一個初始值,這個值可以在定義的方法中直接調用,也可以修改變量的內容,在最近的一個項目中,在開發統計功能的時候,由于基本上每個接口都會用到時間函數獲取當前的時間來計算,每周的日期,或者月份的日期,但是獲取當前時間的代碼datetime.datetime.now()感覺有點長,每次還需要計算或者后面在獲取時分秒的就更長,于是就把這個方法定義成了常量,想要在每次需要使用這個方法獲取當前時間的時候可以直接調用縮短代碼長度,于是直接在定義了一個全局變量t=datetime.datetime.now()定義之后也可以在方法內直接使用,感覺特別方便
可以在實際使用了一段時間后,發現查詢出來的數據好像有問題,時間上總是對不太上,還沒發現是哪里的問題,于是去檢查接口寫的是否有問題,但是代碼一重新運行之后就發現,沒有問題了,數據對了。但是過了半天后,數據又不對了。反反復復幾次之后發現這里好像有大bug

經過測試發現,這個全局變量的值雖然可以直接調用,但是值一直沒變,于是就很尷尬,所以在Python中,全局變量的值不會每次都重新計算獲取當前的時間,除非在某個方法或者代碼里面重新運行一次,否則他的值會一直保持不變。所以如果你想要每次都獲取當前的實際時間的話不能夠這樣直接定義變量來獲取,需要定義一個方法來返回當前時間才可以

下一篇: 寶塔面板忘記密碼后應該如何解決



