我有两个.py脚本文件。 "主要"脚本将导入包含misc" helper"的第二个脚本。功能
在主脚本中,我为SPI接口设置了一个对象。我想在导入的文件中直接编写使用SPI接口的函数。我是一个菜鸟,尝试以各种方式写作和传递,但总是会出错。
mainscript.py
import helperfunctions.py as helper
spi = spidev.SpiDev()
spi.open(0, 0)
response = spi.xfer([ ... some data ...]) #this works when
#called from mainscript.py
helper.sendOtherStuff() #this doesn't work (see helper script below)
helperfunctions.py
def sendOtherStuff():
#need to somehow reference 'spi.' object from mainscript.py file
otherData = ([... some different data ...])
resp = spi.xfer([otherData]) #this fails because helperfunctions
#apparently doesn't know spi. object
return resp
我也常常对全局变量值有一般性的问题。我确定有一个更好的"这样做的方法,但现在出于方便,我经常希望在mainscript.py中定义一些全局变量,然后在helperfunctions.py的函数内引用那些全局变量。我无法想办法做到这一点。走另一条路很容易 - 在helperfunctions.py中声明全局变量然后从mainscript.py引用它们作为helper.variableName,但我不知道如何走向另一个方向。
非常感谢任何方向。谢谢。
答案 0 :(得分:3)
通过我的灯光,最简单的方法是将spi对象作为参数传递给辅助函数:
def sendOtherStuff(spi):
otherData = ([... some different data ...])
return spi.xfer([otherData])
一旦传入,你可以在函数体中调用它上面的方法。我删除了你的变量赋值,因为它似乎是多余的。