前言
盡管大家在編寫python會允許你像shell腳本一樣,把大量代碼堆積在一起,但是,有很多python入門的書籍,都會建議封裝一個函數去寫(面向對象也可以寫),然後在最後統一調用,例如這樣 :
def main():
#具體代碼
if __name__ == '__main__':
main()
很多文章都會說這是由于代碼樣式等原因,但實際上,不這樣寫,有時會直接導緻錯誤。
例如,打開python的一個位元組的class變量部分,可以在這裡看到線上版本,然後在中間複制示例代碼,運作,就可以看到預期的正确結果。
但是現在将代碼中的所有“swaroop”替換為“xxx1”,将所有“kalam”替換為“yyy1”,然後再次運作,在程式結束時,您将得到這樣一個奇怪的錯誤(python 2.6.5實驗):
異常屬性錯誤:>忽略中的“nonetype”對象沒有屬性“population”
也就是說,如果我們改變變量名,程式就會出錯…
原因是,當Python最終銷毀所有類和對象時,它不處理這些對象之間的依賴關系,而是根據變量的名稱決定某種順序操作。是以,Person類本身在YYY2之前就被銷毀了,是以當您解構YYY2時,您将執行它的Del_()方法,并發現父類已經不存在了。~~
這在Python解析器中應該是一個bug,但是如果您将本例中類人員之外的所有代碼寫入一個main()函數并通過上面的方法調用它,就不會發生這種情況。
是以,你最好不要太注意幾行代碼,養成這個好習慣。
小編推薦一個學python的學習qun 740322234
無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙内有開發工具,很多幹貨和技術資料分
享!