在我的Python Maya脚本中,在实例化自己的参数之前,我需要检查是否传入了Logger参数.我该怎么做



我正在使用Python为Maya创建一个工具,在实例化自己的记录器之前,我需要检查是否传入了记录器。我该如何做到这一点,我该如何制作一个函数来专门处理日志记录?我想可能还有更高层次的,比如Shotgun Maya。

# this is a global variable
LOGGER = logging.logger(etc etc)

def function(logger=LOGGER):

如果我正确理解你想做什么,习惯用法是为关键字参数分配一个false值,然后继续分配默认值(这里是全局变量(或显式传递给函数的值:

LOGGER = ... # global instance
...
def f(..., logger=None):
...
logger = logger if logger else LOGGER
...
...  
f(...)                              # uses LOGGER
f(..., logger=logging.logger(...))  # uses new instance

需要注意的是,当您说CCD_ 1时,对CCD_,因此,如果你省略了对false值的赋值,直接说def f(..., logger=LOGGER),你就有两个问题:①如果LOGGER在编译时没有绑定,你就会出现错误;②如果在运行时你更改了全局LOGGER,你的函数将继续使用编译时定义的LOGGER

最新更新