从类中调用函数

2024-06-02 08:40:54 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我的主文件中有一个简单的日志功能:

def log_events(data_to_log):
    log_this = '%s - %s' % (strftime("%Y-%m-%d %H:%M:%S"), data_to_log)
    print ('%s\r' % log_this[0:140])
    hlog_file = open('%s' % LOG_FILE_NAME, 'a')
    print ( log_this, file=hlog_file)
    hlog_file.close()

我有不同的课程来完成不同的任务。我想在我创建的每个类中重用相同的日志函数。这在一个名为的文件中。doit.py

class DoStuff:

    def __init__ (self, extra_stuff_):
        self.some_extra_stuff = extra_stuff

    def do_the_thing(self):
        x = 1
        log_events( ' x is currently %s' % x )
        x = 2
        log_events( ' x is currently %s' % x )
        log_events( ' extra stuff is %s' % self.some_extra_stuff )

现在是最后的代码:

import doit

def log_events(data_to_log):
    log_this = '%s - %s' % (strftime("%Y-%m-%d %H:%M:%S"), data_to_log)
    print ('%s\r' % log_this[0:140])
    hlog_file = open('%s' % LOG_FILE_NAME, 'a')
    print ( log_this, file=hlog_file)
    hlog_file.close()

things_i_want_to_do = doit.DoStuff('this is the stuff')
things_i_want_to_do.do_the_thing()

我得到:

NameError: name 'log_events' is not defined

是否有更好的方法与所有导入的类共享log_events函数