Stringtoknow=";“价值”;我想在变量stringtoknow改变python中的值时运行函数
我是python新手 在python中,这里是我的代码Stringtoknow=";“价值”;我想在变量stringtoknow改变python中的值时运行函数,python,Python,我是python新手 在python中,这里是我的代码 Stringtoknow = "value" #some code def onchange(): print("the value change") Stringtoknow = "new value" # run the onchange function 我希望当Stangtoto知道变量变化 时,将运行Onchange函数的代码。这不完全回答您的问题,但请
Stringtoknow = "value"
#some code
def onchange():
print("the value change")
Stringtoknow = "new value"
# run the onchange function
我希望当Stangtoto知道变量变化
时,将运行Onchange函数的代码。这不完全回答您的问题,但请考虑使用SETER。如果你这样做,这就变得微不足道了Stringtoknow=''
def将字符串更新为已知(新字符串):
Stringtoknow=新字符串
打印(“值更改”)
将字符串更新为已知(“新值”)
在没有更多上下文的情况下,这似乎是完成ask的合理方法。如果您可以将变量放入类实例中,那么我们就可以这样做 实例变量很好,因为我们可以完全控制它们。我们总是可以控制分配给他们时发生的事情。这正是我们的目的
根据Silvio Mayolo的回答,我认为还需要比较原始值和最终值
类StringValueWatcher():
定义初始化(自):
self.\u final=self.\u origin='initial'
@财产
def字符串_值(自身):
返回自我
@字符串值设置器
def字符串_值(自身,v):
self.\u origin=self.\u final
自整定=v
如果是自己的话。_原点!=最终自我评价:
self.on_change()
更改时的def(自我):
打印(f“值从{self.\u origin}更改为{self.\u final}”)
e=StringValueWatcher()
打印(如字符串#u值)#初始值
#首字母
e、 string_value=“initial”#不更改
e、 string_value=“new_value”#已更改
#值从初始值更改为新值
这是否回答了您的问题?这听起来像是一个错误。你到底想做什么?
class Example:
def __init__(self):
self._impl = "value"
@property
def Stringtoknow(self):
return self._impl
@Stringtoknow.setter
def Stringtoknow(self, v):
self._impl = v
print("the value changed")
example = Example()
print(example.Stringtoknow)
example.Stringtoknow = "new value"
print(example.Stringtoknow)