我正在运行一个服务器,该服务器需要从配置文件中获取多个变量,然后在其余的代码中始终引用这些变量。大多数都以本地人的身份通过,但是我要修改的那个必须是全局的,并且只能设置一次。当我稍后在程序中尝试使用“全局变量未定义”时,我得到了它。该变量在初始文件中设置,然后在线程中调用。
我尝试使用“ global myVariable”对变量进行多种声明,但没有任何改变。这是用于传递到redis流以通过WLAN传输到linux计算机的值。
第一个文件:
import files
from SWConnection import Connection
STREAM_INBOUND = None
STREAM_OUTBOUND = None
if __name__ == '__main__':
city = getConfigVariable(Config, 'User', 'City')
STREAM_INBOUND = city + '_IN_TEST'
STREAM_OUTBOUND = city + '_OUT_TEST'
connection.clientHandler() ##Opens script to handle client connection
第二个文件:
class Connection(object):
def clientHandler(self):
newThread = ClientThread(client, ip, port, self.psql, self.rdb)
第三文件:
class ClientThread(threading.Thread):
def function(self):
global STREAM_INBOUND
searchFromTime = int((time.time()-1)*1000)
returned_stream_results = self.rdb.xread({STREAM_INBOUND: str(searchFromTime)})
当前STREAM_INBOUND值是硬编码的,但是我们希望能够使用配置文件进行设置,因此我们不必在流变化之间重新编译。