语言选择: 简体中文简体中文 line EnglishEnglish

公司动态

Python的Registry机制及PyTorch中的基础应用(注册、Register、配置、配置文件、cfg、config、conf、.cfg、.config、.conf)

1. 前言

注册机制是一种在编程中常见的设计模式,它允许程序在运行时动态地将函数、类或其他对象注册到某个中心管理器中,以便随后可以使用这些注册的对象。在Python中,注册机制通常用于实现插件系统扩展性架构以及回调函数的管理

通俗的说,当我们的项目中需要成批量的函数和类,且这些函数和类功能上相似或并行时,为了方便管理,我们可以把这些指定的函数和类整合到一个字典。我们可以用函数名或类名作为字典的 key,也可用使用自定义的名字作为 key,对应的函数或类作为 value。构建这样一个字典的过程就是注册(Registry),Python 引入注册器机制保证了这个字典可以自动维护增加或删除新的函数或类时,不需要手动去修改字典

Python 注册器机制本质上是用装饰器(decorator)来实现的。下面我们将从基本的 Python 函数出发,逐步介绍装饰器,最后来学习注册器。

1. 理解 Python 函数

1.1 函数的不同调用

首先定义一个函数,然后用不同的方式调用它。

def foo():
    return "I am Le0v1n"

print(f"foo(): {foo()}")


fn = foo  # 这里 foo 后面没有小括号,不是函数调用,而是将 foo 函数赋值给变量 fn
print(f"fn(): {fn()}")
foo(): I am Le0v1n
fn(): I am Le0v1n

1.2 函数中的函数

在函数体中还可以定义函数(函数的函数