【Python】VMware vSphere是什么中已经说过需要使用python的背景了(java不会,.Net SDK没有与时俱进),没办法,只有去试试python。不过距离上一次使用python,已经过去了4年了。革命需要,必须快速把python捡起来,看懂项目,并编写python脚本。我大致总结如下几个方面,便可完成快速复习。
首先python是一门解释型语言,按顺序执行。其次每个模块都有一个 __name__
属性,当其值是 __main__
时,表明该模块自身在运行,否则这个模块就是被引入。
dosomething1()
if(__name__=="__main__"):
print("Main")
else:
print(__name__)
dosomething2()
所以上述代码python test.py
执行顺序
如果是被引入的,则执行顺序
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",
"administrator@vsphere.local",
"--password",
"VMware1!"
]
}
]
}
python没有花括号{}
,全靠缩进来标识代码块,限制变量作用域,还有一点对于从.net过来的我来说很变态的一点,缩进不能空格和tab混用。空格还必须是4的倍数。算了,人家的领域,规规矩矩按照要求来吧。
这里还是借助Visual Studio Code
帮我们省点事吧。
Preference->Settings
必需内容:
class关键字
__init__
构造函数
所有的类方法都必须包含self
创建实例,没有new关键字
继承用小括号()
class 派生类名(基类名)
私有变量,前面加两个下划线
公开变量,没有两个下划线
protected 类型的变量,只有一个下划线,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
重写很简单,什么关键字都没有,只要是继承了父类,直接可以定义与父类签名一样的方法,相对于其他编译型语言还是省了个关键字
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class
Parent:
# 定义父类
def
myMethod(self):
print
'调用父类方法'
class
Child(Parent):
# 定义子类
def
myMethod(self):
print
'调用子类方法'
就是一个python文件
# 导入整体模块
import xxx
# 导入模块中的某部分内容
from xxx imoprt yyy
模块是文件,那么包就是一个文件夹
包是使用“带点的模块名称”来构造Python模块名称空间的一种方法。
例如A.B,即指定子模块B,在A包中。
包的文件夹必需内容:
__init__.py
:使Python将包含文件的目录文件夹视为包__init__.py
可以只是一个空文件,但是它也可以执行包的初始化代码,或者设置__all__
变量当导入一个python模块,Python 解析器对模块位置的搜索顺序是:
whl
其实就是一个压缩包,把后缀名改为.zip,是可以完美解压的。一般情况,一个whl文件就是一个python包。安装方式
#安装wheel
pip install wheel
#安装包
pip install xxxx.whl
一般一个python会有很多依赖,我们可以手动导出所有的依赖包:
pip freeze > requestments.txt
pip install -r requirements.txt
先上命令
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
https://blog.csdn.net/hhy_csdn/article/details/82263757
https://www.cnblogs.com/kaerxifa/p/11473841.html