Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否将Python字符串repr用于对象类型签入装饰器?_Python_Python 3.x_Python Decorators - Fatal编程技术网

是否将Python字符串repr用于对象类型签入装饰器?

是否将Python字符串repr用于对象类型签入装饰器?,python,python-3.x,python-decorators,Python,Python 3.x,Python Decorators,我编写了一个日志修饰符,它记录特定函数执行所需的时间以及一些其他信息。我想添加一些基于输入参数的特定信息。所以我写了这段代码: for var in args: if repr(type(var)) == '<class \'django.contrib.auth.models.User\'>': user_id = var.id elif repr(type(var)) == '<class \'someclass.models.Widget\

我编写了一个日志修饰符,它记录特定函数执行所需的时间以及一些其他信息。我想添加一些基于输入参数的特定信息。所以我写了这段代码:

for var in args:
    if repr(type(var)) == '<class \'django.contrib.auth.models.User\'>':
        user_id = var.id
    elif repr(type(var)) == '<class \'someclass.models.Widget\'>':
        event_name = method.__name__ + ':' + var.key
参数中的变量的
:
如果repr(类型(变量))='':
用户id=变量id
elif报告(类型(变量))='':
事件名称=方法。名称:'+var.key

它看起来很笨重,但另一个选项是将django.contrib.auth.models.user和someclass.models.Widget继承到文件中。我的问题是,我这样做的方式是否正确,继承方法是否正确,或者我是否遗漏了什么。

这是一种愚蠢的方法。明智的做法是:

for var in args:
    if type(var) == models.User:
        user_id = var.id
    elif type(var) == models.Widget:
        event_name = method.__name__ + ':' + var.key
并为模型继承适当的源


如果您希望装饰器更高效,并最终继承大量的类,那么最好使用一个主抽象类和几个子类。

这是一种愚蠢的方法。明智的做法是:

for var in args:
    if type(var) == models.User:
        user_id = var.id
    elif type(var) == models.Widget:
        event_name = method.__name__ + ':' + var.key
并为模型继承适当的源


如果您希望装饰器更高效,并最终继承大量的类,那么最好使用一个主抽象类和几个子类。

为什么要使用
repr
?为什么不使用或?理想情况下,您应该使用并导入它们。在这种情况下,我很好奇效率和代码连接之间的平衡。如果decorator应用于各种各样的代码块,并且需要从这些代码块继承它所分支的类。。。。没有关系。我想如果我在足够多的地方使用它,我会将其子类化,并将代码块分开。谢谢你们。为什么要通过
repr
?为什么不使用或?理想情况下,您应该使用并导入它们。在这种情况下,我很好奇效率和代码连接之间的平衡。如果decorator应用于各种各样的代码块,并且需要从这些代码块继承它所分支的类。。。。没有关系。我想如果我在足够多的地方使用它,我会将其子类化,并将代码块分开。谢谢你们两位。