我已经被这个错误困扰了两个小时。不知道出什么问题了。下面是一段代码


  NameError:全局名称“ GetText”未定义


class BaseScreen(object):

    def GetTextFromScreen(self, x, y, a, b, noofrows = 0):
        count = 0
        message = ""
        while (count < noofrows):
            line = Region(self.screen.x + x, self.screen.y + y + (count * 20), a, b)
            message = message + "\n" + line.text()
            count += 1
        return message

class HomeScreen(BaseScreen):

    def GetSearchResults(self):
        if self.screen.exists("Noitemsfound.png"):
            return 'No Items Found'
        else:
            return self.GetTextFromScreen(36, 274, 680, 20, 16)

class HomeTests(unittest.TestCase):

    def test_001S(self):
        Home = HomeScreen()
        Home.ResetSearchCriteria()
        Home.Search("0009", "Key")
        self.assertTrue("0009" in Home.GetSearchResults(), "Key was not returned")


Basescreen类具有适用于不同屏幕的所有可重用方法。
Homescreen继承Basescreen
HomeTests测试用例类中,最后一步是Home.GetSearchResults(),它依次调用基类方法和错误。

注意:
我还有另一个screenclass和testcaseclass都在做同样的事情,没有问题。

我已经检查了所有导入声明,还可以

错误消息中的“ GetText”最初是方法的名称,之后我将其更改为GetTextFromScreen

错误消息仍然指向代码中不再存在的第88行。模块导入/重新加载问题?

最佳答案

尝试清除* .pyc文件(如果使用3+,则清除__pycache__)。

关于python - Python:NameError:未定义全局名称“GetText”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16430298/

10-13 03:20