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')

报错结果:

img

def execute(a):

改为 def execute(self,a):

@staticmethod
def execute(a)

因为你的类方法在调用时会自动传入当前实例对象,它自己占了一个参数位置。如果不想传入,需要声明为静态函数
不要随意删掉编译器自动生成的self字样,并不是你删掉了它就不传入了