如何解决课前和__init__之前的日志记录装饰不同?
我正在研究如何记录。我想在宣布新员工时制作日志记录系统日志。 这是我的代码。
@employee_log
class Employee:
def __init__(self,name: str,pay: int):
self.name = name
self.pay = pay
self.__pay_raise_rate = 1.03
在某个时候,我想知道如果将@employee_log放在__init__的头上怎么办。 看起来像
class Employee:
@employee_log
def __init__(self,pay: int):
self.name = name
self.pay = pay
self.__pay_raise_rate = 1.03
但是它不起作用。错误说
TypeError: __init__() missing 1 required positional argument: 'pay'
它们之间有什么问题和区别?
我的雇员日志是
class employee_log:
def __init__(self,orig_func):
self.orig_func = orig_func
logging.basicConfig(filename='{}.log'.format(orig_func.__name__),level=logging.INFO,format='%(asctime)s:%(levelname)s:%(message)s')
def __call__(self,*args,**kwargs):
logging.info('Ran with args {},kwargs {}'.format(*args,**kwargs))
return self.orig_func(*args,**kwargs)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。