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)
如何在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)