créer une fonction globale en python

En python comment puis-je créer une fonction qui peut être globale utilisée dans toutes les classes qui sont appelés?
Voici un exemple:

import configparser
import os
import sys
from datetime import datetime
from ftplib import FTP

def notify(msg):
    echo = True
    log = True
    if echo:
        print(msg)
    if log:
        f = open('log.txt','a')
        msg = datetime.now().strftime("%y-%m-%d-%H:%M:%S")+': ' + msg
        f.write(msg)
        f.close()
    #sys.exit()  #removing this was the fix!

class zoneFTP():
    def __init__(self):
        self.conn = FTP()
        self.dir = './'
        notify('The dir is :' + self.dir)

def main():
    notify('starting')
    ftp = zoneFTP()

if __name__ == "__main__":
    main()

Appel notify() dans le zoneFTP classe échoue. Comment puis-je faire la notify() fonctionner comme un seul de l'python construit dans les fonctions de sorte qu'il peut être appelé n'importe où? Ou est-il une meilleure manière de faire ce que je suis en train de faire ici?

Vérifiez le message d'erreur que vous obtenez. Il devrait y avoir aucune raison que vous ne pouvez pas appeler notify() de la classe d'initialiseur, mais le nom de la classe FTP n'est pas déclaré.
Votre notifier les appels sys.exit(), de sorte que le l'appel à zoneFTP() dans main il ne sera jamais atteint.
Correct, Le code ci-dessus est sélectionné à partir d'un grand projet sur lequel je travail, j'ai raté la partie. J'ai corrigé le code d'exemple.
Merci, je suis nouveau sur python et totalement oublié que j'avais ce qu'il y à. Il fonctionne très bien maintenant!
haha, jetant sys.de sortie dans les fonctions aléatoires est généralement une mauvaise idée!

OriginalL'auteur lanrat | 2011-04-23