我正在为我的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")
但它并没有起作用
发布于 2018-07-30 06:13:02
您永远不应该在子函数的作用域之外公开它,在本例中是在load
之外的tts
方法。实际上,如果不在load()
方法外部公开引用,就不可能访问tts
。我建议您使用这样的类:
在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")
发布于 2018-07-30 00:11:12
当您运行loadfile.load().tts("petar")
时,它等同于:
v = loadfile.load()
v.tts("petar")
您的方法loadfile.load()
不返回任何值,因此为v
分配了None
。然后尝试对None
调用tts()
,这是一个错误。
你为什么要这么做呢?也许你想创建一个类?
发布于 2019-09-03 13:28:21
您可以按照以下代码在def中调用def
def num1(x):
def num2(y):
return x * y
return num2
res = num1(10)
print(res(5))
https://stackoverflow.com/questions/51582040
复制相似问题