Python 如何缩短*cirtcuit[]以创建类似列表的对象,而不是标准列表?有可能吗?
免责声明:我正在编写一个编译器,所以这是黑色巫毒的东西。我知道,我已经穿上了防护服,如果我能找到其他简单的方法,我不会这么做 源文本是标准python,我使用所有可用的运行时类型操作将其转换为其他内容。简而言之,所有标准类型都使用元数据进行了增强。目前,列表是唯一一种非叶类型且为标准的类型。(dict属于同一类别,但我还没有尝试转换它,我可能会遇到同样的问题)。叶类型(int、str、bool、float)和类都可以 要用我的增强列表数据类型优雅地替换标准列表是一个SWoop,我想更改python文本中标记Python 如何缩短*cirtcuit[]以创建类似列表的对象,而不是标准列表?有可能吗?,python,list,compiler-construction,overriding,Python,List,Compiler Construction,Overriding,免责声明:我正在编写一个编译器,所以这是黑色巫毒的东西。我知道,我已经穿上了防护服,如果我能找到其他简单的方法,我不会这么做 源文本是标准python,我使用所有可用的运行时类型操作将其转换为其他内容。简而言之,所有标准类型都使用元数据进行了增强。目前,列表是唯一一种非叶类型且为标准的类型。(dict属于同一类别,但我还没有尝试转换它,我可能会遇到同样的问题)。叶类型(int、str、bool、float)和类都可以 要用我的增强列表数据类型优雅地替换标准列表是一个SWoop,我想更改pytho
[]
的默认行为,而不是返回列表,它应该返回类似于列表的类型
但我看不出有什么办法可以拦截这个令牌。
(我可以通过sys.modules[\uuuu内置]
覆盖令牌列表
,但[]
似乎遥不可及。)
有什么想法吗 如上所述,python不允许重写其语法
虽然,包含一个可能对您有帮助(可能没有)的hack。您是在谈论更改方法
列表。\uuuu getitem\uuuu
?重新编译源代码。@jamylak我知道他想覆盖列表文本。几乎可以肯定有一种更简单、更少hack的方法。这件衣服散发出一股臭味。如果您想为自己编写的代码提供这一点,只需显式添加所需内容。如果是编译器生成的代码,请更改编译器以明确添加所需内容。谢谢您的提问/评论。我更新了文本以更好地解释项目的目标和限制。谢谢,这是我想要的信息。我得另找一条路。