[英]Python 3: How do I get one class to modify values in an instance of another class?
我正在学习用Python编写代码,并且正在编写一个简短的程序,并以三个类作为练习。 第一类使用第二和第三类的实例作为属性。 我试图在第三类中获取一个方法,以更改其本身的实例以及第二类的实例中的值。 到目前为止,我有这样的事情:
Class_a():
self.b_attribute = Class_b()
self.c_attribute = Class_c()
Class_b():
self.b_value = 5
Class_c():
self.c_value = 1
def change_values():
self.c_value += 1
instance = Class_a()
instance.c_attribute.change_values()
调用instance.c_attribute.change_values()
将c_value
实例的Class_a
增加1。是否可以编写change_values()
以便调用instance.c_attribute.change_values()
也b_value
此实例的Class_a
? 如果有可能,我将如何编写该代码?
您对该Class_a |的类具有层次结构 | Class_b Class_c
现在,您已经完成了对Class_c的更改,并且它会影响c_attribute组件的Class_a。
该技术非常先进,让您初学者学习它感到惊讶。
但是,这仅是可访问的,因为c是a的一部分。 但是注意c不是b的一部分,反之亦然。 看到b和c没有关系的层次结构。
处理此问题的一种清晰方法是在中执行一般功能。
但是,如果要对attribute_c进行更改,以使其对attribute_b产生连锁影响,则必须在a中设置一个可由c调用的触发器。
例如
class a():
def a_change_b(): #trigger function
self.b_attribute += 1
class c():
def change_b():
a_change_b() #try to call the trigger function outside c but inside a
希望它能工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.