Python遇到的大坑

     首先,說明一下本人Python小白一個,完全是因爲公司業務需要,所以接觸Python,給我第一感覺,語法真的看得很不舒服,然後加上今天遇到的大坑,讓我更加不愛Py!

   很久之前我就裝好python的開發環境,然後導入工程,開始按需求邊摸索他的語法邊改代碼,但是改完之後打包發現,根本運行不起來,一直報'module' object has no attribute 'xxxxx'...的錯誤,跟蹤代碼,發現他的錯指向的是global定義的一個全局變量,我就很納悶,同樣的代碼在另一臺機子上沒報錯,環境也是一樣的,神了個奇!因爲那會趕進度,所以沒深究,然後就在另一臺機子上打包了,知道今天,我重新去搞了這個項目!還是在之前的不行的機子上去搞,結果不是報'module' object has no attribute 'xxxxx'...這個的錯誤,而是報了另一個錯誤:

於是,我瘋狂百度找解決方案,百度到的答案都說是定義的函數要求的是4個參數,而我調用的時候傳了5個,我反覆查看這個函數,沒理由啊,這個函數自己定義的,就是傳5個參數,而且另一臺機子咋不報這個錯,然後我就開始懷疑是不是環境問題,於是開始從另一臺可運行的機子上各種拷貝Python的相關配置文件過來,發現還是不行!!我最終用了大家的常規操作的祕密武器-----卸了重裝!!但是,結果是:然並卵!那個氣啊,後面我去菜鳥教程網站(https://www.runoob.com/這個學習網站大家應該都知道,有空建議大家可以去了解了解),去了解了一下Python關於函數的定義的學習指南,發現裏面有我想了解的內容如下:

於是,我開始對我的代碼下手,在我定義的函數的最後一個參數的前面加上一個 * 號,也就是原來定義的函數是

def appendChannelIcon(a,b,c,d,e):變成 def appendChannelIcon(a,b,c,d,*e):,然後編譯運行打包,發現不再報

TypeError: appendChannelIcon() takes exactly 4 arguments (5 given)這個錯了,崩潰的我嘗試還原了這個修改,把定義的函數變回原來的def appendChannelIcon(a,b,c,d,e):,然後重新編譯打包,發現好了!!!!不報參數個數不對的錯誤了,但是舊的問題又來了的-->定義的全局變量'module' object has no attribute 'APKSIGN_PATH '...還是報沒定義,問題又迴歸到最初的問題了,神了個奇!於是同事說改一下這個變量名試試,於是把變量名改成APKSIGN_PATH _TEST,發現沒報錯了,但是不改之前爲什麼在另一臺機子上不會報這種錯捏,那麼奇葩的嗎?不應該啊,於是我說,既然剛纔報參數個數的錯的問題改了之後也不行,然後還原回來到沒改之前,編譯都可以,那我們這個變量名也變回原來的試試看,應該就完全沒問題了!於是把變量名重新變回原來的APKSIGN_PATH ,果然,一改回來就啥問題都沒有,那個淚奔,真的是奇葩,不得不吐槽一下這個Python!中途中還請教了我的Python大佬同學,他也沒遇到這個情況,但是萬萬沒想到的結果是隻是改個名編譯,還原,再編譯解決這個問題!真的是夠奇葩啊,特分享給大家,遇到類似的問題可以這麼嘗試解決!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章