gpt4 book ai didi

python - 如何实现这个机制 :

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:52 24 4
gpt4 key购买 nike

我想用 python 实现一个动态关系机制,比如:

a:=10
b:=30
c:=a+b
print c
a+=20
print c

输出:

40
60

c 总是 a+b 的结果。
因此,如果 a 或 b 发生变化,则 c 会自动更新值。我用 C# 编写代码,并通过 setget 机制来完成。现在想将它翻译成 python 代码以便在另一个程序(FontLab Studio 5)中使用。我对 Python 不是很熟悉。他有像 C# 那样的 get,set 功能吗?如果不是何执行一个?

最佳答案

这可能有点矫枉过正,但它说明了您应该如何在 Python 中创建 getter/setter 并实现您想要的功能:

class Calc(object):
def __init__(self, a = 0, b = 0):
self._a = a
self._b = b

@property
def a(self):
return self._a

@a.setter
def a(self, value):
self._a = value

@property
def b(self):
return self._b

@b.setter
def b(self, value):
self._b = value

@property
def c(self):
return self._a + self._b

def __str__(self):
return str(self.c)

calc = Calc()
calc.a = 1
calc.b = 2
print calc.c
calc.a += 10
print calc.c

如果不想让ab成为属性,可以简化代码:

class Calc(object):
def __init__(self, a = 0, b = 0):
self.a = a
self.b = b

@property
def c(self):
return self.a + self.b

def __str__(self):
return str(self.c)

关于python - 如何实现这个机制 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2532664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com