Python 从类中调用函数
如果我的主文件中有一个简单的日志功能:Python 从类中调用函数,python,python-3.x,logging,Python,Python 3.x,Logging,如果我的主文件中有一个简单的日志功能: 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) hl
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
是否有更好的方法与所有导入的类共享日志事件功能?您希望能够使用日志记录器的任何文件都应导入日志记录器它不是自己的类,而是主文件的一部分。“是否有更好的方法共享日志事件功能”您根本没有共享它。这样做。如果您需要与许多其他文件共享日志,则应将日志程序移动到它自己的文件中。您必须在每个python文件中导入此记录器,以便能够访问记录器。明白了。我想既然它是主脚本的一部分,我就不必每次都将它分离成一个文件并导入。