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日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭