当不能使用字符串时,Python是否具有用于表示符号值的内置类型?
我自己的快速实现就像
class Symbol:
def __init__(self, name):
self.name = name
def __repr__(self):
return self.name
当需要将值(例如关键字参数或列表项)初始化为表示尚未明确设置的值时,此类符号很有用。
如果值对允许的类型有约束,通常使用None
或某些字符串,但是如果允许 any 值,则需要其他一些唯一对象。我的常用方法是使用分配给某些私有变量的object()
,但是由于提供了有意义的打印表示,因此符号模式更便于调试。
作为一种替代方案,可以使用例如元组('default value',)
并与is
运算符进行比较,但这不起作用,例如字典键。
虽然该模式非常简单,可以复制/粘贴到我正在编写的每个shell脚本中,但最好是使用具有确定行为的内置解决方案。
我知道,有些软件包提供了符号类型。一个明显的符号类型是sympi
,并且有https://pypi.org/project/SymbolType/。但是,添加依赖项来避免5行模式似乎是一个严重的过大杀伤力,因此我对 builtin 类型感到疑问。