python报错:Missing 1 required positional argument

今天在学习数据结构并进行实例化操作的时候遇到了如下问题:
在这里插入图片描述
我原来的代码为

def factorial(n,out) :
    if n == 1 :
        out = 1
        return out#递归结束
    out = n * factorial(n - 1)
    return out#问题规模减1,递归调用

if __name__ == '__main__':

    factorial(10,1)
    print(out)

修改后的代码为:

def factorial(n) :
    if n == 1 :

        return 1#递归结束

    return n * factorial(n - 1)#问题规模减1,递归调用

if __name__ == '__main__':


    print(factorial(10))

在网上搜索这个问题的时候遇到最多的还是在调用类的时候出现这个错误,错误原因是没有对类进行实例化。
在Python中,应该先对类进行实例化,然后在应用类
实例化的过程一定要记得加括号

举一个代码例子:
错误代码

class AutoImportMoudle(object):
    '''自动导入Case'''
    def __init__(self):
        pass
 
    def creat_dir(self,path):
        '''检测是否有放log的文件夹以将其创建'''
        if not os.path.exists(path):
            os.mkdir(path)
            print('目标不存在,已被创建...')
        else:
            pass
 
 
    def impor_mod(self):
        '''拼接字符串'''
 
 
if __name__ == '__main__':
    # 检测是否导入了所有Case
    AutoImportCase.impor_mod()

改正方法:
将调用语句改为

if __name__ == '__main__':
    # 检测是否导入了所有Case
    AutoImportCase().impor_mod()

直白的说,调用类的时候必须要加括号,这是对类进行实例化,是必要的的步骤。

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值