Python中的非字符串“ Symbol”对象?

时间:2018-06-29 09:35:39

标签: python symbols

当不能使用字符串时,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 类型感到疑问。

1 个答案:

答案 0 :(得分:-1)

您可以使用枚举库: https://docs.python.org/3/library/enum.html