我有一个外部函数my_update_function
,它不是我的类my_class
的一部分(目前出于设计原因)。现在,我想使用外部函数my_update_function
更新my_class
的内部参数,即self.x
和self.y
请看这个MWE,它描述了我的问题:
def my_update_function(arg1,args2):
"""
Updates arg1 and arg2.
"""
return arg1*arg1,arg2*arg2
class my_class(object):
def __init__(self):
self.x = 2
self.y = 3
def simulate(self):
my_update_function(self.x,self.y)
但是,我想知道是否有某种方法(通过类重新设计或其他方式)可以更新self.x
和self.y
,而不必将函数my_update_function
的输出保存为参数值(也不必将my_update_function
作为类my_class
的一部分),也就是说,我不想这样写:
def simulate(self):
self.x, self.y = my_update_function(self.x,self.y)
但我希望它是这样的:
def simulate(self):
my_update_function(self.x,self.y)
因此my_update_function
将更新的参数值传递给类,而不必显式地将它们存储为输出
请让我知道,如果它不清楚我的意思,我会更新的问题
然后在你们班上:
由于python没有指针,一个常见的技巧是使用列表,列表是通过引用传递的,因此它们的内容是可变的:
我添加这个作为第二个答案,以免造成混乱
使用对象而不是列表的工作方式是相同的(两者都是通过引用传递的),而且您手头已经有了一个对象,因此最好使用
my_class
对象相关问题 更多 >
编程相关推荐