python2.7 - python【多进程】关于进程的变量的问题
PHPz
PHPz 2017-04-18 09:28:25
0
2
316
PHPz
PHPz

学习是最好的投资!

répondre à tous(2)
左手右手慢动作

Problème de portée variable de Python. L'interpréteur traite le run_proc dans votre gcc comme une nouvelle variable.

Ajoutez simplement print avant global gcc.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from multiprocessing import Process
import os

gcc='parent'

# 子进程要执行的代码
def run_proc(name):
    global gcc
####################################
    print 'Son Process:',gcc
####################################
    gcc='son'
    print 'Son Process:',gcc

if __name__=='__main__':
    p = Process(target=run_proc, args=('test',))
    p.start()
    p.join()
    print 'Parent Process:',gcc
    

Vous pouvez obtenir les résultats souhaités.

Au fait, pensez à écrire le message d'erreur dans la question la prochaine fois.

Supplément : si vous supprimez la phrase gcc='son', vous pouvez toujours exécuter sans ajouter global En effet, gcc='son' est également utilisé par Python comme instruction de déclaration pour les variables locales dans la fonction.
Le code original équivaut à ce que vous utilisiez d'abord la variable locale gcc puis que vous la déclariez, il y a donc une erreur. Si vous supprimez cette phrase, l'interpréteur Python pensera que vous utilisez des variables globales au lieu de variables locales.

迷茫

Votre gcc variable est définie en dehors de la fonction, mais vous l'appelez à l'intérieur de la fonction, vous obtiendrez donc l'erreur suivante

UnboundLocalError: local variable 'gcc' referenced before assignment

Vous pouvez modifier le code comme suit et réessayer.

import os
from multiprocessing import Process

gcc = 'parent'

def run_proc(name):
        global gcc
        print 'Son Process:',gcc
        gcc = 'son'
        print 'Son Process:',gcc

if __name__ == '__main__':
        p = Process(target=run_proc, args=('test',))
        p.start()
        p.join()
        print 'Parent Process:',gcc

J'ai obtenu les résultats suivants :

python $python q.py 
Son Process: parent
Son Process: son
Parent Process: parent
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal