如何解决使用装饰器调试代码[Python]
我正在用python编写一些代码,以尝试创建一个简单的面向套接字对象的服务器-客户端连接。我想保持代码干净,因此我希望排除过多的“ if”语句。所以我对服务器套接字的类定义如下:
class Server(object):
def __init__(server_ip=LOCALHOST,server_port=55555,debug=True):
# other code
pass
因此,如果有某种形式的段落可以进行某种调试时看起来很有用,那么我将包含以下if语句:
if debug:
print("Something that helps the code debugging")
因此,我想知道是否有一种方法可以从主类中排除这种类型的代码块,并将其添加到定义装饰器的包装函数中。那可能吗?如果是这样,我如何实现此功能?
非常感谢您的时间,而且,请问我的英语水平,我还在练习中!
解决方法
这取决于您,但是实际上对于日志记录逻辑,使用内置的日志记录模块非常方便,该模块具有清晰的设置模式:
import logging
logger = logging.getLogger(__name__)
log_handler = logging.streamHandler() # to output logs into stderr by default
logger.addHandler(log_handler)
logger.setLevel(logging.DEBUG) # here you set log level,you need to parametrize it (or dive deeper into logging docs)
def your_foo():
logger.debug('Debug log message') # will only fire if log level == DEBUG
如果您仍然想坚持使用装饰器,我可以建议以下话题(装饰器的一部分):James Powell: So you want to be a Python expert? | PyData Seattle 2017
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。