Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

create a global function in python

In python how can I create a function that can be global an used in all classes that are called? Here is an example:

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()

Calling notify() in the zoneFTP class fails. How can I make the notify() function like one of the python built in functions so that it can be called anywhere? Or is there a better way of doing what I am trying to accomplish here?

like image 493
lanrat Avatar asked Apr 23 '11 01:04

lanrat


1 Answers

Put notify() in a utility module and have all the other modules import it.

like image 145
Ignacio Vazquez-Abrams Avatar answered Oct 01 '22 01:10

Ignacio Vazquez-Abrams