我有一个脚本(myScript.py
),它使用了在其内部定义的函数的组合,例如:printStatements()
,以及从同一目录下的config.py
文件导入的函数,例如myTask()
。
我希望导入的myTask()
函数引用本地定义的printStatements()
函数,但在运行时收到NameError: printStatements() is not defined
消息。我该如何组织这个?
打印行为因脚本而异,因此这需要定制&相对于定义它的文件。我无法将printStatements()
导入到config.py
文件中,因为我有多个使用config.py
文件的脚本,每个脚本都有自己的printStatements()
函数。
编辑-一些示例代码:config.py
def myTask(m, x, c):
y = (m*x) + c
printStatements("y: {}".format(y))
myScript.py
import config as cnfg
def printStatements(mymsg):
print(mymsg)
cnfg.myTask(3, 2, 4)
错误:NameError: name printStatements is not defined.
2条答案
按热度按时间yvt65v4c1#
最简单、最清晰的选择是将print函数和参数一起传递给
myTask
,正如注解中所建议的那样:然后
在
myScript.py
中。如果你觉得这是额外的“工作”,那么每次都把函数写为第一个参数:它使我们更清楚地了解正在做什么。可能还有其他方法,但在我看来,这些方法在幕后做得太多了:显性比隐性好。
zpf6vheq2#
如果你要多次调用
myTask()
,你可能不倾向于将它作为参数传递。另一种方法是使用类。