首页 > 解决方案 > python 在 def() 内部调用 def()

问题描述

我正在为我的 python 助手制作一个包,但发现了一个问题。

我将以下程序导入到主脚本中。

import os

def load() :
    def tts(name) :
        os.system("""PowerShell -Command "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak(' """ + name + " ');"

我如何将函数调用到我的程序中

我试过了 :

import loadfile
loadfile.load().tts("petar")

它没有用

标签: pythonfunction

解决方案


您永远不应该在其范围之外公开子功能,在这种情况下,就是tts方法 outside loadtts如果不将其引用暴露在您的load()方法之外,实际上是不可能访问的。我建议你宁愿使用这样的类:

loadfile.py

import os

class LoadFile(object):
    def tts(self, name):
        os.system("""PowerShell -Command "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak(' """ + name + " ');")

def load():
    return LoadFile()

在主要代码上: import loadfile loadfile.load().tts("petar")


推荐阅读