panbaoran913 2021-10-15 14:47 采纳率: 71.4%
浏览 20
已结题

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

  • 写回答

1条回答 默认 最新

  • 於黾 2021-10-15 14:54
    关注
    def execute(a):
    

    改为 def execute(self,a):

    @staticmethod
    def execute(a)

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月23日
  • 已采纳回答 10月15日
  • 创建了问题 10月15日

悬赏问题

  • ¥30 win c++ socket
  • ¥15 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的