【问题标题】:How to call a function in another function in python 3.8? [duplicate]如何在 python 3.8 的另一个函数中调用一个函数? [复制]
【发布时间】:2020-11-19 19:22:35
【问题描述】:

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

【问题讨论】:

标签: python algorithm function methods self


【解决方案1】:

在您的示例中,您将使用

self.WriteMessage(message)

【讨论】:

    【解决方案2】:

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

    如果您将WriteMessage 定义为普通函数而不是类方法,那么您的代码将按照编写的方式运行。

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

    self.WriteMessage(message)
    

    【讨论】:

      【解决方案3】:

      WriteMessage 不是通用函数,而是 Foo 的一个方法。 因此,请执行以下操作:

      self.WriteMessage(message)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-07
        • 1970-01-01
        • 1970-01-01
        • 2017-09-01
        相关资源
        最近更新 更多