为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中使用位置参数调用函数的问题

在Python中使用位置参数调用函数的问题

慕尼黑5688855 2023-07-05 10:13:41
是什么导致代码出现问题?这是代码的文本import numpy as npclass Solution():    def findMedianSortedArrays(n1,n2):        a=0        n1=np.array(n1)        n2=np.array(n2)        sum1=0        n3=n1+n2        for i in n3:            sum1=sum1+i            a=a+1        return (sum1/a)
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

self换句话说,类方法的第一个默认参数是类实例本身。在您的代码中,n1将会采用类实例的值,并且n2将会采用 的值1,并且 value 没有留下任何参数2,因此会引发错误。

您可以尝试打印出来n1n2理解我的意思。

解决方案:

def findMedianSortedArrays(self,n1,n2):
    ...

如果您不想传递self,请将方法实现为staticmethod,如下所示:

@staticmethod
def findMedianSortedArrays(n1,n2):
    ...

这样,函数调用就findMedianSortedArrays可以使用 2 个参数。


查看完整回答
反对 回复 2023-07-05
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

函数调用:

sum1 = Solution().findMedianSortedArrays(1, 2)

相当于:

solution = Solution()
sum1 = solution.findMedianSortedArrays(1, 2)

引自此处:自我的目的是什么?

每个类方法(包括 init)的第一个参数始终是对该类当前实例的引用。按照惯例,这个参数总是被命名为self。init方法中,self指的是新创建的对象;在其他类方法中,它指的是调用其方法的实例。

总而言之:

使用

def findMedianSortedArrays(self, n1, n2):
    ...

或进行静态调用:

sum1 = Solution.findMedianSortedArrays(1, 2)


查看完整回答
反对 回复 2023-07-05
  • 2 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信