代码之家  ›  专栏  ›  技术社区  ›  K Riss

Python在函数之间共享变量,但在线程之间不共享

  •  0
  • K Riss  · 技术社区  · 7 年前

    ref 这对于每个线程都是不同的。

    裁判 是在线程函数中的函数中定义的,所以当我使用全局 裁判 裁判 (我不想要)。但是,当我不使用全局 裁判 因为它没有定义。

    例如。:

    def threadedfunction():
        def getref():
            ref = [get some value of ref]
        getref()
        def useref():
            print(ref)
        useref()
    threadedfunction()
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Marco    7 年前

    如果定义 ref global 不符合你的需要,那么你没有其他选择。。。

    def threadedfunction():
    
        def getref():
            ref = "Hello, World!"
            return ref # Return the value of ref, so the rest of the world can know it
    
        def useref(ref):
            print(ref) # Print the parameter ref, whatever it is.
    
        ref = getref() # Put in variable ref whatever function getref() returns
        useref(ref) # Call function useref() with ref's value as parameter
    
    threadedfunction()