【发布时间】:2018-11-06 09:22:08
【问题描述】:
我有一些全局类,这意味着我将它们用于任何其他类。
实际上我是这样做的:
class Log():
def __init__(self):
self.logs = []
def log(self, msg):
self.logs.append(msg)
class A():
def __init__(self, logger):
self.logger = logger
class B():
def __init__(self, logger):
self.logger = logger
class MyMain():
def __init__(self):
self.logger = Log()
self.a = A(self.logger)
self.b = B(self.logger)
我想知道是否有一种更优雅的方法可以在所有子模块上使用这样的类。我搜索了很多来寻找这个问题的解决方案,但我对答案感到困惑。 有没有这方面的最佳实践..?
谢谢, 托尼。
【问题讨论】:
-
不是一个正确的答案,但 Python 的 stdlib 中已经有一个相当复杂的日志记录包,根据经验,你自己不会有更好的东西。
-
更一般的答案:您希望每个模块都有自己的
Log实例,还是您想要一个用于整个过程的Log实例,还是您有更确切的要求? -
记录只是一个例子。我正在创建的课程会做得更多..
-
好的,但这不能回答我的第二个问题。
标签: python python-3.x class design-patterns