NameError: nom global de "chaussette" n'est pas défini
J'ai défini un socket appelé chaussette dans mon Main.py. À partir de Main.py je l'importation Functions.py où il y a une fonction (ou une méthode, je ne sais pas comment on les appelle en Python) appelé sendMessage. Dans sendMessage j'ai besoin d'utiliser la chaussette que j'ai définie dans mon Main.py. Comment dois-je faire? J'ai essayé d'ajouter global sock
à ma fonction/méthode, mais sans effet.
Main.py
#! /usr/bin/env python
import sys
import socket
import string
import os
import commands
import time
from config import *
from functies import *
from php import *
sock = socket.socket ()
sock.connect ((config['server']['host'], config['server']['poort']))
...
Functions.py
#! /usr/bin/env python
def sendMessage (receiver, message):
global sock
sock.send ('PRIVMSG ' + ontvanger + ' :' + message + '\n')
L'erreur
Traceback (most recent call last):
File "Main.py", line 68, in <module>
sendMessage (receiver, config['nick'] + ' is here!')
File "/home/robin/microPy/Functions.py", line 4, in sendMessage
sock.send ('PRIVMSG ' + receiver + ' :' + message + '\n')
NameError: global name 'sock' is not defined
functions.php ??
(1) C'est une drôle de choix de la position pour Functions.py (b) Vous n'avez pas défini le nom global de chaussette. Vous gardez à l'esprit le mot-clé import, alors pourquoi n'utilisez-vous pas?
Faute de frappe xD j'ai l'habitude de taper
(1) C'est une drôle de choix de la position pour Functions.py (b) Vous n'avez pas défini le nom global de chaussette. Vous gardez à l'esprit le mot-clé import, alors pourquoi n'utilisez-vous pas?
Faute de frappe xD j'ai l'habitude de taper
.php
.OriginalL'auteur RobinJ | 2012-02-19
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de php du module globaux variables en Python. Au lieu de cela, laissez
sendMessage
prendre le socket comme un argument, comme ceci:Au contraire, le code va être un gâchis si vous utilisez des variables globales. Par exemple, comment voulez-vous prolonger votre programme à utiliser plusieurs sockets? Si vous avez vraiment besoin d'une variable globale, vous pouvez faire un module
myGlobal
et de l'affecter.Pour plusieurs sockets je venais d'utiliser des noms différents...
OriginalL'auteur phihag
Votre
functions.py
ont aucune idée de ce quesock
est. Essayer de passer chaussette exemple comme argument.OriginalL'auteur Muhammet Can