如何解决在带有位置参数的python中调用函数的问题
什么导致代码出现问题?这是代码的文本
import numpy as np
class 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)
解决方法
类方法的第一个默认参数是self
,换句话说,类实例本身。在您的代码中,n1
将采用类实例的值,而n2
将采用1
的值,并且值{{ 1}},从而引发错误。
您可以尝试打印出2
和n1
来理解我的意思。
解决方案:
n2
如果您不想通过def findMedianSortedArrays(self,n1,n2):
...
,则将方法实现为self
,如下所示:
staticmethod
这样,对@staticmethod
def findMedianSortedArrays(n1,n2):
...
的函数调用可以使用2个参数。
函数调用:
sum1 = Solution().findMedianSortedArrays(1,2)
等效于:
solution = Solution()
sum1 = solution.findMedianSortedArrays(1,2)
从这里引用:What is the purpose of self?
每个类方法(包括init)的第一个参数始终是 引用该类的当前实例。按照惯例, 参数始终命名为 self 。在初始化方法中,自我是指 新创建的对象;在其他类方法中,它指的是 方法被调用的实例。
TLDR:
使用
def findMedianSortedArrays(self,n2):
...
或进行静态调用:
sum1 = Solution.findMedianSortedArrays(1,2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。