如何将对象的函数名称作为参数传递

亲爱的杜尔迪耶夫

我正在尝试做的是这样的:

def custom_logger(user_logger, log_level, *args, **kwargs):    
    # do some stuff..
    user_logger.log_level(*args, **kwargs)

或像这样:

def create_logger(module_name, log_level=DEBUG):
    logger = logging.getLogger(module_name)
    logger.setLevel(logging.log_level)

我怎样才能实现这样的目标?因为它将清理很多东西。

吹牛

您可以使用该getattr函数按名称获取属性:

def custom_logger(user_logger, log_level, *args, **kwargs):    
    log = getattr(user_logger, log_level) # or log_level.lower() if log_level is in upper case
    # do some stuff..
    log(*args, **kwargs)

def create_logger(module_name, log_level=DEBUG):
    logger = logging.getLogger(module_name)
    logger.setLevel(getattr(logging, log_level))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将参数名称作为参数传递?

如何将参数名称作为参数传递给函数

我们如何将对象作为参数传递给对象值中的函数名?

如何将子类的函数名称作为参数传递给python中的父类方法?

将函数名称作为参数传递给mapply?

如何将函数中的参数名称作为列值返回?

如何将对象作为参数传递给函数?

如何将对象作为参数传递给函数

如何将对象属性作为函数参数传递?

如何将对象/类作为函数的参数传递

如何将对象的属性作为参数传递给函数

使用函数名称作为参数

clojure函数名称作为参数

如何通过定义为函数的变量将对象名称作为参数传递给另一个函数?

如何将对象作为参数传递?

如何将组件名称作为参数传递并在函数中接收它

如何将函数名称及其参数作为参数传递?

将函数名称作为脚本中的位置参数之一传递

为什么在这种情况下不能将函数名称作为参数传递?

将函数参数名称作为字符串传递

Python3:将函数名称作为参数传递

如何将对象列表作为函数中的参数传递,然后使用对象的属性C#

如何将对象属性作为函数参数传递给lambda函数?

如何将对象名称值对作为参数传递给方法?

如何将MongoDB集合名称作为参数传递给数据库连接函数-Python

如何在Python 3中将函数名称作为String传递

如何将对象作为默认参数传递给ecmascript中的函数?

如何将对象数组作为参数传递给模板

如何将对象作为BlackBerry SOAP请求参数传递