我有一個簡化代碼的問題。
我有兩個函式,它們的作業相同,都是關閉視窗。
def exit(self, event)。
self.running = False。
self.win.destroy()
self.server.close()
exit(0)
def stop(self)。
self.running = False。
self.win.destroy()
self.server.close()
exit(0)
我把它們分開了,因為exit函式需要一個來自這里的事件引數。
self.win.bind_all("<Control-x>", self.exit)/code>
而停止函式是由這里使用的。self.win.protocol("WM_DELETE_WINDOW", self.stop)
這個解決方案是重復的。
這個解決方案是多余的,這就是為什么我在考慮通過回收一個函式來簡化它。有沒有辦法讓self.win.protocol("WM_DELETE_WINDOW", self.stop)也使用退出函式?
uj5u.com熱心網友回復:
不確定你在用event物件做什么,因為你的代碼片段沒有顯示它在任何地方被使用,然而你可以通過以下方式實作你的要求:
def exit(self, event=None) 。
self.running = False。
self.win.destroy()
self.server.close()
exit(0)
event可以作為一個可選的引數傳遞,如果沒有傳遞,默認值為None,否則就是適當的事件物件。
這里是一篇關于如何向函式傳遞可選引數的好文章
uj5u.com熱心網友回復:
你可以使用一個默認引數。這將允許在兩種情況下使用exit函式。
def exit(self, event=None) 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/330581.html
標籤:
上一篇:退出懸停時的反轉影片
下一篇:無法識別"https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-f
