我有以下课程:
class xyq(object):
def __init__(self,param1,param2):
self.param1=param1
self.param2=param2
考虑到xyq的一个实例是:
instance1=xyq(param1=110, param2=func1(x=10,y=20))
有可能在class xyq
内有一个引用param2内参数的方法?
例如:
method1(self):
return self.param2.x
或者这只是可能从一个实例调用
基本上,我将接收一个输入,其中有一个我感兴趣的参数是一个函数,其中的一个子参数我想用它作为一个方法来输出一个表。如果这是不可能的:
你知道我该如何克服这个问题吗
对。这就是类的工作方式,事实上,这就是
self
是实例方法的参数的全部原因事实上,当你
您没有直接设置这些值。而是台词
在
xyq.__init__()
中,正在设置这些值。您可以使用xyq(110, func1(x=10,y=10)
来获得完全相同的效果稍后,如果您在类之外,您可以执行
instance1.param2.x
,或者执行instance1.method1()
,它们将返回相同的结果。事实上,当你在
method1()
中,您实际上是在方法外部instance1.param2.x
引用同一对象。也就是说,当您对实例调用方法时,实例本身会自动作为self
参数传递,您可以相应地使用它如果希望有一种更直接的方法从实例外部引用
instance1.param2.x
,可以修改__init__()
将其设置为另一个参数:但另一种方法是override ^{} ,在您的特定情况下自定义它的行为,并让它在其他情况下正常运行
相关问题 更多 >
编程相关推荐