私は Python とツイストを使用して snmp 管理プログラムを作成しています。その一部では、クライアント側のいくつかのボタンをリモート snmp set メソッドにバインドする必要があります。これはパースペクティブ ブローカーで処理されます。
for item in devicevars[current+" buttons"]:
ttk.Label(buttonframe, text=item + ":").grid(column=1, row=i2, sticky=(E))
ttk.Button(buttonframe,width = 3,textvariable=guivars["%s %s" %(current,
item)],command=remoteButton(current, item)).grid(column=2, row=i2, sticky=(W))
i2 = i2+1
def remoteButton(dname, value):
rbutton= pbfactory.getRootObject()
rbutton.addCallback(lambda object: object.callRemote("SNMP", dname, value))
rbutton.addErrback(lambda reason: 'error: '+str(reason.value))
問題は、このコードにより、クライアントが起動するとすぐにリモート メソッドが起動されることです。なぜこれが起こっているのか知っている人はいますか?