我正在模拟代码擦除字符串开头的所有零。
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
我的代码:
class Solution:
def eraseZero(self,x):
if str(x)[0]!='0':
x = str(x)[0:]
return x
else:
x = str(x)[1:]
return eraseZero(x)
s1 = Solution()
s1.eraseZero('000789')
print(s1.eraseZero('000789'))
然而,我得到了一个错误:
D:\Python27\python.exe D:/pyProject/LintCode&LeetCode/medium.py回溯(最近一次调用):文件"D:/pyProject/LintCode&LeetCode/medium.py",第13行,s1.eraseZero('000789') File "D:/pyProject/LintCode&LeetCode/medium.py",第8行,eraseZero返回eraseZero(x) NameError:全局名称'eraseZero‘
为什么?以及如何提前fix.thanks!
发布于 2018-06-02 03:08:53
由于eraseZero
是类Solution
的一部分,而不是全局定义的,因此应该使用该类的实例self
来调用它,无论是在类内还是类外部调用它。
class Solution:
def eraseZero(self,x):
if str(x)[0]!='0':
x = str(x)[0:]
return x
else:
x = str(x)[1:]
return self.eraseZero(x) # <-----------
s1 = Solution()
s1.eraseZero('000789')
print(s1.eraseZero('000789'))
https://stackoverflow.com/questions/50656270
复制相似问题