如何使用Function循环中定义的全局变量

时间:2013-04-02 13:27:23

标签: python sockets python-2.7

对于我的simple socket server,我需要一个名为serverloop的函数(我正在努力提高我的函数技能。)在这个函数中,循环不断尝试与潜在客户连接:

def serverloop(s):
    while True:
        conn, addr = s.accept()
        print "Connected with", addr

但是,运行其他功能需要conn

def send_msg(conn):
    #Send some data to the remote server
    my_message = raw_input(">>>")


     #set the whole string
    conn.sendall(my_message)

我尝试使用行global conn强制conn为全局,但我仍然收到错误:

NameError: global name 'conn' is not defined

注意:我必须使用线程。

如果在函数中定义conn变量,我如何调用conn变量?

1 个答案:

答案 0 :(得分:1)

您正在使用线程,并且在您致电connRECEIVE 尚未设置

修复将是不使用线程,或者至少将conn设置为None,然后轮询它是否设置为{{1}中的不同内容在尝试将值传递给main之前。