在 class 的另一个函数中调用函数时出现 NameError
NameError on a function while calling for it in another function of a class
我为 a problem on leetcode.com 开发了一些代码。有一个 class 和一个函数,我添加了另一个函数 matchingBrackets
。然而,当我编写代码 运行 时,此函数出现 NameError。确实,好像没有定义。
class Solution:
def matchingBrackets(self, s:str) -> bool:
lefts = ['(','{','[']
rights = [')',']','}']
if s[0] in lefts:
function(s[1:],type)
elif s[0] in rights:
if s[0] == bracket:
return True
else:
return False
else:
print("different from brackets")
s = s[1:]
def isValid(self, s: str) -> bool:
return matchingBrackets(s[1:],bracket)
当运行在leetcode控制台上编译代码时,returns:
NameError: name 'matchingBrackets' is not defined
Line 19 in isValid (Solution.py)
Line 30 in __helper__ (Solution.py)
Line 44 in _driver (Solution.py)
Line 55 in <module> (Solution.py)
我认为有几个问题。
当您引用与 def method(self, arg1, arg2):
相同的 class 中定义的方法时,如果您从相同的 [=] 使用该方法,则需要进一步将该方法用作 self.method(arg1, arg2)
30=]。也就是说,您的 isValid
方法需要 return self.matchingBrackets(s[1:],bracket)
代替。
此外,您将 matchingBrackets
定义为除 self
之外仅接受一个参数的方法,但随后将两个参数 s[1:]
和 bracket
传递给它。这也是为什么不清楚变量bracket
指的是什么。
另外,我不太明白function(s[1:],type)
指的是什么。它是否在您发布的代码片段之外定义了它?
最后,我不确定函数的逻辑是否符合 Leetcode 问题的要求。
我为 a problem on leetcode.com 开发了一些代码。有一个 class 和一个函数,我添加了另一个函数 matchingBrackets
。然而,当我编写代码 运行 时,此函数出现 NameError。确实,好像没有定义。
class Solution:
def matchingBrackets(self, s:str) -> bool:
lefts = ['(','{','[']
rights = [')',']','}']
if s[0] in lefts:
function(s[1:],type)
elif s[0] in rights:
if s[0] == bracket:
return True
else:
return False
else:
print("different from brackets")
s = s[1:]
def isValid(self, s: str) -> bool:
return matchingBrackets(s[1:],bracket)
当运行在leetcode控制台上编译代码时,returns:
NameError: name 'matchingBrackets' is not defined
Line 19 in isValid (Solution.py)
Line 30 in __helper__ (Solution.py)
Line 44 in _driver (Solution.py)
Line 55 in <module> (Solution.py)
我认为有几个问题。
当您引用与 def method(self, arg1, arg2):
相同的 class 中定义的方法时,如果您从相同的 [=] 使用该方法,则需要进一步将该方法用作 self.method(arg1, arg2)
30=]。也就是说,您的 isValid
方法需要 return self.matchingBrackets(s[1:],bracket)
代替。
此外,您将 matchingBrackets
定义为除 self
之外仅接受一个参数的方法,但随后将两个参数 s[1:]
和 bracket
传递给它。这也是为什么不清楚变量bracket
指的是什么。
另外,我不太明白function(s[1:],type)
指的是什么。它是否在您发布的代码片段之外定义了它?
最后,我不确定函数的逻辑是否符合 Leetcode 问题的要求。