python中的class类中的函数定义与调用的问题。想知道函数的内部调用是怎么样的,self.new_sum()?or new_sum()?,再或者与函数的变量self有关?再或者我的实例化方法有误
问题描述:
la=['nihao','buhao','dahao','quba']
va=[8,10,20,43]
class con():
def __init__(self,label,value,nsum=0):
self._label=label
self._value=value
self._nsum=nsum
self._nn=0
def new_count():
print('与class内容无关的函数!')
return(8)
def new_sum(self):
self._nsum=sum(self._value)
reurn(self._nsum)
def execute(a):
if a=='sum':
new_sum()
else:
new_count()
操作代码:
t=con(la,va)
t.execute('sum')
报错结果:
答
def execute(a):
改为 def execute(self,a):
或
@staticmethod
def execute(a)
因为你的类方法在调用时会自动传入当前实例对象,它自己占了一个参数位置。如果不想传入,需要声明为静态函数
不要随意删掉编译器自动生成的self字样,并不是你删掉了它就不传入了