cano 是留有 com inte***ce 的,這樣我們可以通過第三方的程式呼叫canoe開放的api。
在c:\users\public\documents\vector\canoe\sample configurations 11.0.55\programming 這個路徑下有個官方的demon ,是通過python 呼叫的canoe .
因為指令碼 呼叫了 win32com 這個庫,如果沒有com口程式設計的經驗,這部分還是挺難懂的,下面我就結合自己的琢磨,逐行分析下**的邏輯,因為本人也學藝不精,僅供參考。
總代嗎不到200行, 兩個全域性函式,五個定義的類,從類名字可以看出這些類的用意
圖1:圖2:
下面我們逐行解讀下**:
先看class canoesync(object):
的def __init__(self):
class
canoesync
(object):
started =
false
stopped =
false
configpath =
""def
__init__
(self)
:)
false
# print
('loaded canoe version '
, ver.major,
'.',
ver.minor,
'.',
ver.build,
'...'
, sep='')
self.running =
lambda
: self.measurement.running
self.waitforstart =
lambda
: doeventsuntil(
lambda
: canoesync.started)
self.waitforstop =
lambda
: doeventsuntil(
lambda
: canoesync.stopped)
)
#開啟乙個canoe應用程式,沒毛病
false
('loaded canoe version '
, ver.major,
'.',
ver.minor,
'.',
ver.build,
'...'
, sep='')
列印canoe的版本資訊
將區域性變數賦值給類變數,這沒毛病
self.running =
lambda
: self.measurement.running 這行**使用了匿名函式lambda ,因為匿名函式沒有輸入引數,所以相當於 `self.running = self.measurement.running`
self.waitforstart =
lambda
: doeventsuntil(
lambda
: self.started)
self.waitforstop =
lambda
: doeventsuntil(
lambda
: self.stopped)
相當於
def
waitforstart()
: doeventsuntil(self.started)
defwaitforstop()
: doeventsuntil(self.stopped)
#靜態事件的繫結,具體不清楚 python官方 Python官方中文文件強勢來襲
python 官方支援的文件一直沒有中文。小夥伴們已經習慣了原汁原味的英文文件,但如果有官方中文文件,對於初學者來說,門檻會大大的降低。現在中文文件強勢來襲 以前也是有一些第三方維護的 python 中文文件,不過可能因為人力等限制,並做不到同步更新與維護。目前也有很多高質量的 python 中文資...
python呼叫其他程式 python呼叫其他程式
在python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的 為了更好地控制執行的程序,可以使用win32process模組中的函式。如果想進一步控制程序,則可以使用ctype模組,直接呼叫kernel32.d...
python呼叫所有函式 python 呼叫函式
python內建了很多有用的函式,我們可以直接呼叫。也可以在互動式命令列通過help abs 檢視abs函式的幫助資訊。呼叫abs函式 abs 100 abs 20 abs 12.34 12.34 呼叫函式的時候,如果傳入的引數數量不對,會報typeerror的錯誤,並且python會明確地告訴你 ...