通过类的方法调用该类的参数的参数

2024-09-28 01:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下课程:

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

或者这只是可能从一个实例调用

基本上,我将接收一个输入,其中有一个我感兴趣的参数是一个函数,其中的一个子参数我想用它作为一个方法来输出一个表。如果这是不可能的:

你知道我该如何克服这个问题吗


Tags: 实例方法self参数objectinitdefclass
1条回答
网友
1楼 · 发布于 2024-09-28 01:29:58

对。这就是类的工作方式,事实上,这就是self是实例方法的参数的全部原因

事实上,当你

instance1 = xyq(param1=110, param2=func1(x=10,y=10))

您没有直接设置这些值。而是台词

self.param1 = param1
self.param2 = param2

xyq.__init__()中,正在设置这些值。您可以使用xyq(110, func1(x=10,y=10)来获得完全相同的效果

稍后,如果您在类之外,您可以执行instance1.param2.x,或者执行instance1.method1(),它们将返回相同的结果。事实上,当你

self.param2.x

method1()中,您实际上是在方法外部instance1.param2.x引用同一对象。也就是说,当您对实例调用方法时,实例本身会自动作为self参数传递,您可以相应地使用它


如果希望有一种更直接的方法从实例外部引用instance1.param2.x,可以修改__init__()将其设置为另一个参数:

self.param3 = self.param2.x

但另一种方法是override ^{},在您的特定情况下自定义它的行为,并让它在其他情况下正常运行

相关问题 更多 >

    热门问题