代码之家  ›  专栏  ›  技术社区  ›  kdb

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

  •  0
  • kdb  · 技术社区  · 8 年前

    当不能使用字符串时,Python是否有用于表示符号值的内置类型?

    我自己的一个快速实现

    class Symbol:
        def __init__(self, name):
            self.name = name
        def __repr__(self):
            return self.name
    

    当一个值说一个关键字参数或一个列表条目需要初始化为一个表示它没有被显式设置的值时,这样的符号是有用的。

    如果值对允许的类型有约束,通常 None 任何 值是允许的,需要其他唯一对象。我常用的方法是 object() 分配给一些私有变量,但是由于提供了有意义的打印表示,符号模式更便于调试。

    另一种方法是,可以使用元组 ('default value',) is 接线员,但这不起作用,例如字典键。

    虽然模式非常简单,可以复制/粘贴到我正在编写的每个shell脚本中,但最好使用具有既定行为的内置解决方案。

    非内置

    sympi ,还有 https://pypi.org/project/SymbolType/ . 然而,添加依赖项以避免5行模式似乎是一个严重的过度消耗,因此我的问题是 键入。

    1 回复  |  直到 8 年前
        1
  •  -1
  •   jc1850    8 年前