日积月累-从细节做起
從不是一個認真和注意細節的人,但是往往卻要將一個小小的看似已成規律的問題弄出個所以然來,就因為這樣,往往折騰很長時間。
一件事情,要么不做,要么做好,做好一件事情是非常難得,但是至少在做事情的時候,將這些蘊含的一些流程和原理搞清楚,這對我這種沒有追求的人,也就足矣。
??? 其實有一些問題,我在以前的博客里面寫過,也提到過,但是我沒有多想,只是為了說明一個問題,或者是得到答案,但是這似乎不是一種好的方法。好的方法應該是問題解決了,然后將自己視為一個評論家,大談闊論一番,這樣也能表達自己的見解,不管錯對,但是盡量以自己的觀點去表達,按自己的理解去組織語言,好好暢所欲言一番,一次例會上,領導也說道了評論這個詞,我們不僅僅要將自己的東西弄好,還要敢于評論那些不好,這樣才能更加全面的認識某一個東西。要作為一個評論家,談何容易,這不是一朝一夕之功,更何況,一個評論家還要有淵博的學識,不然自己都不知道別人寫的錯對,那還如何評論,評論不是挑是非,只是別人的一家之言而已,也只不過是自己的看法而已,所謂橫看成嶺側成峰,出發點不一樣,對一個東西的評價也不一樣,是非曲直都會有,關鍵就看如何去分析,如何去對待。
??? 當然這里我不是想要評價一個東西,只是想談一些自己的想法,人有的時候就是閑的無聊,居然能在工作的時候想一些事情,如果非要找一個理由,我覺得”在工作中思考,是為了更好的工作“,暫且用這個牽強附會的說法吧。
??? 有的時候發現工作很被動,受制于人,如果米國人不給提供一些資料,我就無從下手,久而久之覺得這不是一種辦法,人應該在工作幾年后學會淡定,而我卻不是一個淡定的人,因為米國人給的東西是我們的第一手資料,這樣我們才能深入開展下來的工作,就好比,一個剛學Java開發的人,JDK半天都沒配置好,還怎么開發?例子可能不怎么樣,但也算中肯,因為當年我學習Java的時候,遇到過,所以記憶幽深,至今不忘,當然當時并不知道配置這個是為了什么,但是經過自己的不斷學習,終于知道了原因,因為知道了為什么,所以在以后的使用過程中,也就不在出現問題。
???? 話題又扯遠了,還是回來吧,近日拿到了一個python的包,但是不知怎么部署才好,如果是C#的dll,這個我們都應該很清楚,添加引用即可,而python的包就是一個文件夾,里面有很多py結尾的文件,記得以前在博客中寫過python搜索的順序,在這里我想說下自己的想法,其實很多語言在在使用其他庫或者包或者dll里面的功能,這些語言都有自己尋找這些的順序,其實我覺得這個問題我們應該很早的就發現,而不是現在,所以我只能用慚愧這兩字描述自己,我們寫程序的時候,因為是二次開發,其實很多時候都是調用系統的功能或者第三方SDK的功能,但是當程序運行的時候是如何和這些連接起來呢?了解了這個,那么我們在部署應用程序的時候也就有了一定的規律可循,要不然在部署程序的時候或者引用其jar包,類庫的時候出現找不到的情況。
????? 我相信我要表達的意思已經很清楚了,想要說的也差不多了,再啰嗦一句,在使用任何東西的時候都多思考,思考其運行機制等,當然這是我從程序這上面說的,其它的我也沒資格去討論。
? 現在就說我問題的解決方法吧,我是直接將python的包放到了site-packages文件夾下,然后在python命令行中import的時候就可以找到了,不信的話,自己嘗試下!
以圖為證:
python搜索的順序是:
1,當前路徑 (以及從當前目錄指定的sys.path)(這句是我猜測的在python.exe運行的時候,會自動把當前目錄添加到sys.path中);
2,然后是PYTHONPATH;
3,python編譯器所在的位置
???? 既然知道這個順序了,那我們就應該知道如何做了,在這里要提到一個?.pth的文件,一般我們可以將自己用到的包的地址寫在這個文件中,然后將這個文件放到site-packages目錄下,當python.exe在運行的時候發現了site-packages下的.pth文件會將里面的路徑包含到python的搜索順序中。如果注意看的話,ArcGIS的先關包的位置就是放在這個pth文件中的。
上一幅圖看下sys.path,包含哪些東西,不只有什么想法:
都說到這個份上了,我就多說寫,python的模塊和包的區別。
?
模塊
一個.py文件就是一個python模塊。
包
我上面提到了包,但是一直沒說,其實就是一個文件夾,這個文件夾用有一堆py文件也就是模塊,當然這些py文件可能是有某種關系的,在這個文件夾中在放上一個__init__.py文件,這樣這個文件夾就構成了一個python 包,python包可以嵌套,包里面的我們就說是字包,是不是跟java的package有點像,沒錯,看來學東西的時候多思考,多聯系,用以學過的東西其實也是可以解釋的。__init__.py文件可以為空,不過,一般它時而會包含一個__version__的變 量,保存這個包的版本信息,另外還有一個__all__的列表,包括要import 時要導入的模塊。當然,__init__.py的內容不是絕對的,也可以什么都不寫,還可以加上其它任何自己認為需要的代碼。
python如何導入
相信你已經見過了import 和from... import,但是它們是有區別的:
import module會導入module這個模塊里的所有標識,只要import了,我們就可以引用它的任何公共的函數、類或屬性,但是這些標識現在都在module名字空間下,調用的時候必須用這種寫法moudle.add()等。
from module import *也會導入module中所有標識,但是標識不在module名字空間下了,也就是任何只要不是以”_”開始的東西都會被導入,它放到在當前名字空間里。并且,這句話執行完之后,當前名字空間中并不存在 module這個標識,也就是任何只要不是以”_”開始的東西都會被導入。from ... import ...語句還可用于從一個模塊中導入部分標識,寫法是"from module import 標識名",這樣就只有指定的標識被導入,這種方式可以精確控制導入的內容,防止導入整個模塊造成名稱污染。
?
我說的說完了,你們扔磚吧!
?
?
?
?
轉載于:https://www.cnblogs.com/zuiyirenjian/archive/2013/05/12/3074504.html
總結
以上是生活随笔為你收集整理的日积月累-从细节做起的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高级测试开发面试题
- 下一篇: 转【查看oracle数据库的连接数以及用