如果我有一个变量:
var = 5
Run Code Online (Sandbox Code Playgroud)
我想在变量的值更改时检测并跳转到函数,所以如果var不等于之前的值,我想跳转到函数。
最简单的方法是什么?
另一个例子:
from datetime import datetime
import time
def dereferentie():
currentMinute = datetime.now().minute
checkMinute(currentMinute)
def checkMinute(currentMinute):
#if currentMinute has changed do:
printSomething()
def printSomething():
print "Minute is updated"
def main():
while (1):
dereferentie()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
以@HelloWorld 的回答和@drIed 的评论为基础:一个不错的方法是将其包装到一个类中。
例如:
class Watcher:
""" A simple class, set to watch its variable. """
def __init__(self, value):
self.variable = value
def set_value(self, new_value):
if self.variable != new_value:
self.pre_change()
self.variable = new_value
self.post_change()
def pre_change(self):
pass # do stuff before variable is about to be changed
def post_change(self):
pass # do stuff right after variable has changed
Run Code Online (Sandbox Code Playgroud)
我会使用一个 setter 函数来触发您所需的函数。
def setValue(val):
global globalVal
valueChanged= g_val != val
if valueChanged:
preFunction()
globalVal = val
if valueChanged:
postFunction()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14849 次 |
| 最近记录: |