在导入的函数

时间:2016-08-31 01:30:43

标签: python object import

我有两个.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,但我不知道如何走向另一个方向。

非常感谢任何方向。谢谢。

1 个答案:

答案 0 :(得分:3)

通过我的灯光,最简单的方法是将spi对象作为参数传递给辅助函数:

def sendOtherStuff(spi):
    otherData = ([... some different data ...])  
    return spi.xfer([otherData]) 

一旦传入,你可以在函数体中调用它上面的方法。我删除了你的变量赋值,因为它似乎是多余的。