【Python】快速複習指南-Quick Review
上篇已經說過需要使用python的背景了(java不會,.Net SDK沒有與時俱進),沒辦法,只有去試試python。不過距離上一次使用python,已經過去了4年了。革命需要,必須快速把python撿起來,看懂專案,並編寫python指令碼。我大致總結如下幾個方面,便可完成快速複習:
1.python程式的入口
首先python是一門解釋型語言,按順序執行。其次每個模組都有一個 __name__
屬性,當其值是 __main__
時,表明該模組自身在執行,否則這個模組就是被引入。
dosomething1() if(__name__=="__main__"): print("Main") else: print(__name__) dosomething2()
所以上述程式碼python test.py
執行順序
- dosomething1()
- print("Main")
- dosomething2()
如果是被引入的,則執行順序
- dosomething1()
- dosomething2()
2.python命令列引數
python test.py arg1 arg2 arg3
pyvmomi-community-samples
裡面很多sample都是通過命令列引數來進行除錯,然後有命令列解析方法解析命令,所以要執行這些示例,需要傳命令列引數,在Visual Studio Code
中,可以去編輯launch.json
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python: 當前檔案", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "args": [ "--server", "192.168.0.110", "--username", "[email protected]", "--password", "VMware1!" ] } ] }
3.python程式碼縮排
python沒有花括號{}
,全靠縮排來標識程式碼塊,限制變數作用域,還有一點對於從.net過來的我來說很變態的一點,縮排不能空格和tab混用。空格還必須是4的倍數。算了,人家的領域,規規矩矩按照要求來吧。
這裡還是藉助Visual Studio Code
幫我們省點事吧。
Preference->Settings
- Insert Space:勾選,按Tab,就會插入空格
- Tab Size:填4,按Tab就是4個空格
4.python類
必需內容:
-
class關鍵字
-
__init__
建構函式 -
所有的類方法都必須包含self
-
建立例項,沒有new
-
繼承用小括號()
-
class 派生類名(基類名)
-
-
私有變數,前面加兩個下劃線
- __private_attrs
-
公開變數,沒有兩個下劃線
-
protected 型別的變數,只有一個下劃線,即保護型別只能允許其本身與子類進行訪問,不能用於 from module import *
-
重寫很簡單,什麼關鍵字都沒有,只要是繼承了父類,直接可以定義與父類簽名一樣的方法,相對於其他編譯型語言還是省了個關鍵字
-
#!/usr/bin/python # -*- coding: UTF-8 -*- class Parent: # 定義父類 def myMethod(self): print '呼叫父類方法' class Child(Parent): # 定義子類 def myMethod(self): print '呼叫子類方法'
-
5.python模組和包
模組
就是一個python檔案
# 匯入整體模組
import xxx
# 匯入模組中的某部分內容
from xxx imoprt yyy
包
模組是檔案,那麼包就是一個資料夾
包是使用“帶點的模組名稱”來構造Python模組名稱空間的一種方法。
例如A.B,即指定子模組B,在A包中。
包的資料夾必需內容:
__init__.py
:使Python將包含檔案的目錄資料夾視為包__init__.py
可以只是一個空檔案,但是它也可以執行包的初始化程式碼,或者設定__all__
變數
6.python搜尋路徑
當匯入一個python模組,Python 解析器對模組位置的搜尋順序是:
- 當前目錄
- 如果不在當前目錄,Python 則搜尋在環境變數 PYTHONPATH 下的每個目錄。
- 有些開源專案,引入本地包的時候,寫的是全路徑,這個基本都是PYTHONPATH 缺失當前專案,新增即可
- 如果都找不到,Python會察看預設路徑。UNIX下,預設路徑一般為/usr/local/lib/python/。
7.python安裝whl
whl
其實就是一個壓縮包,把字尾名改為.zip,是可以完美解壓的。一般情況,一個whl檔案就是一個python包。安裝方式
#安裝wheel
pip install wheel
#安裝包
pip install xxxx.whl
8.python匯出依賴和安裝
一般一個python會有很多依賴,我們可以手動匯出所有的依賴包:
- 匯出
pip freeze > requestments.txt
- 安裝:安裝匯出的requestments.txt的依賴
pip install -r requirements.txt
9.python安裝git遠端包
先上命令
pip install --upgrade git+https://gitee.com/RandyField/vsphere-automation-sdk-python.git
這個看起來是一個命令,其實內部經歷了兩個步驟
#克隆
git clone https://gitee.com/RandyField/vsphere-automation-sdk-python.git
#安裝依賴
python setup.py install
參考連結
https://docs.python.org/3/tutorial/modules.html
https://docs.python.org/3/tutorial/modules.html#packages
https://blog.csdn.net/Iron_Ye/article/details/80044242