Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stringtoknow=";“价值”;我想在变量stringtoknow改变python中的值时运行函数_Python - Fatal编程技术网

Stringtoknow=";“价值”;我想在变量stringtoknow改变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函数的代码。这不完全回答您的问题,但请

我是python新手 在python中,这里是我的代码

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)