全局变量和函数Python

2024-09-30 16:36:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在一个函数中定义了一个函数。我知道我必须使用Global var,但是我仍然没有得到我期望的输出。在

def proxycall():
    global ip
    global port
    ip = "192.168.0.1"
    port = "8080"


def web1():
    class YWebPage():
        def something():
            var = 1
        def somethingelse():
            varr = 2
    class Browser():
        def someting():
            varrr = 3
        def sometingelse():
            varrrr = 4

    print (ip)
    print (port)

web1()

我的程序的这个最小版本给出了traceback-name错误:没有定义全局名'ip'。在


我现在看到了最小版本的问题,谢谢你指出了它。但是我现在不认为这是我的问题,因为我在下面的完整版本中调用了proxycall(),有什么想法吗?在

^{pr2}$

Tags: 函数版本ip定义portvardefglobal
3条回答

在全局访问ip之前,需要调用proxycall():

proxycall()
web1()

更新后的代码与原始代码有相同的问题。您在该语句中使用ip:

QNetworkProxy.setApplicationProxy(QNetworkProxy(QNetworkProxy.HttpProxy, ip, port))

…但在之后的语句中调用proxycall之前,不会调用proxycall。在

您根本没有调用proxycall(),因此从未设置变量。在

先调用它,然后调用web1()

proxycall()
web1()

名称不会仅仅因为在函数中标记为global而突然出现;Python名称需要赋值(绑定)才能具体化。在

相关问题 更多 >