今天在学习数据结构并进行实例化操作的时候遇到了如下问题:
我原来的代码为
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()
直白的说,调用类的时候必须要加括号,这是对类进行实例化,是必要的的步骤。