Python 使用其他模块中的特定方法扩展类
我试图用“日志记录”模块中包含的一些输出函数扩展我的自定义类“Test”。我有一个名为“打印”的自定义日志记录级别,这会给我带来问题。我尝试了多种方法,每种方法都有一些缺点。有没有其他方法比我错过的更好 我希望能够在对象上使用vars(),并且只打印出不属于日志记录方法的属性 此方法有效,但打印出“print”方法(我不想要) 这种方法也能起作用,但看起来不太像蟒蛇。由于我将对许多函数执行此操作,因此它将占用大量空间,而且我在传递可选参数时也遇到了问题Python 使用其他模块中的特定方法扩展类,python,python-3.x,Python,Python 3.x,我试图用“日志记录”模块中包含的一些输出函数扩展我的自定义类“Test”。我有一个名为“打印”的自定义日志记录级别,这会给我带来问题。我尝试了多种方法,每种方法都有一些缺点。有没有其他方法比我错过的更好 我希望能够在对象上使用vars(),并且只打印出不属于日志记录方法的属性 此方法有效,但打印出“print”方法(我不想要) 这种方法也能起作用,但看起来不太像蟒蛇。由于我将对许多函数执行此操作,因此它将占用大量空间,而且我在传递可选参数时也遇到了问题 #Test.py logger = log
#Test.py
logger = logging.getLogger('console')
class Test:
def __init__(self):
self._some_obj = True
def print(msg):
logger.print(msg)
#main.py
vars(Test()) # Prints {'_some_obj':True}
初始化中的
def
在哪里(Woops.错过了。修复了为什么不继承logging.Logger
类?
#Test.py
logger = logging.getLogger('console')
class Test:
print = logger.print # Overwrites default print
def __init__(self):
self._some_obj = True
#main.py
vars(Test()) # Prints {'_some_obj':True}
#Test.py
logger = logging.getLogger('console')
class Test:
def __init__(self):
self._some_obj = True
def print(msg):
logger.print(msg)
#main.py
vars(Test()) # Prints {'_some_obj':True}