python 3.8 如何在另一个函数中调用一个函数?

How to call a function in another function in python 3.8?

如何在Start函数中调用WriteMessage函数?
我收到以下错误:发生异常:NameError 名称 'WriteMessage' 未定义

我的代码:

import sys,time,os

class Foo:

    def Start(self):
        message="Do something..."
        WriteMessage(message)
        name = input()
        return name

    def WriteMessage(self,message):
        for char in message:
            sys.stdout.write(char)
            sys.stdout.flush()
            time.sleep(0.1)

if __name__ == "__main__":
    foo= Foo()
    foo= foo.Start()

在您的示例中,您将使用

self.WriteMessage(message)

WriteMessage不是一般的函数,而是Foo的一个方法。 因此,这样做:

self.WriteMessage(message)

由于您已将 WriteMessage 定义为 class Foo 的方法,因此不能直接在本地或全局范围内使用。您需要引用 class 的实例才能调用该函数。

如果您将 WriteMessage 定义为普通函数而不是 class 方法,您的代码将按编写的方式工作。

正如 wKavey 所说,您可以通过将 self. 添加到您的函数调用来修复您的代码。

self.WriteMessage(message)