【发布时间】:2020-10-26 19:47:17
【问题描述】:
我要做的就是每次从第一类调用更改函数时,将第二类的“a”的值设为负值。 我不想通过第二类的实例直接访问“a”变量。我只想通过不同的类来改变 'a' 的值。
class First():
def __init__(self):
self.value = 1
self.s = Second(self)
def change(self):
trigger = input("continue? y/n?")
self.value *= -1
print(self.value)
print(self.s.a)
if trigger == "y":
self.change()
class Second():
def __init__(self, num):
self.a = num.value
f = First()
f.change()
【问题讨论】:
-
你能澄清你的问题,或者你想做什么?您可以分配给
self.s.a。 “我只想通过不同的类来改变'a'的值”是什么意思?您的示例中没有“不同的类”。 -
self.a = num.value是一个一次性事件。您检索了截至该特定时刻的num.value的值,并将其分配给self.a。您没有设置任何类型的持续过程来保持这两个值同步。如果您真的不能只分配给self.s.a,则需要Second保留对num本身的引用,并让a成为每次引用时检索num.value的属性。跨度> -
@MisterMiyagi 这不是我的实际代码。我的实际代码非常大而且复杂,我认为在这里发布会太长,所以我只是简化了不起作用的部分并以这种方式放置它,这样人们更容易通过它并解释我有什么问题。
-
@jasonharper 你能告诉我如何以编程方式进行。一个 sn-p 代码将非常有帮助
-
我知道这是简化的代码(这很好),但它无法演示您想要做什么(这不好)。请edit您的问题更清楚地描述您想要做什么,可能使用短代码来展示您想要的行为。
标签: python python-3.x class oop instance