Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何缩短*cirtcuit[]以创建类似列表的对象,而不是标准列表?有可能吗?_Python_List_Compiler Construction_Overriding - Fatal编程技术网

Python 如何缩短*cirtcuit[]以创建类似列表的对象,而不是标准列表?有可能吗?

Python 如何缩短*cirtcuit[]以创建类似列表的对象,而不是标准列表?有可能吗?,python,list,compiler-construction,overriding,Python,List,Compiler Construction,Overriding,免责声明:我正在编写一个编译器,所以这是黑色巫毒的东西。我知道,我已经穿上了防护服,如果我能找到其他简单的方法,我不会这么做 源文本是标准python,我使用所有可用的运行时类型操作将其转换为其他内容。简而言之,所有标准类型都使用元数据进行了增强。目前,列表是唯一一种非叶类型且为标准的类型。(dict属于同一类别,但我还没有尝试转换它,我可能会遇到同样的问题)。叶类型(int、str、bool、float)和类都可以 要用我的增强列表数据类型优雅地替换标准列表是一个SWoop,我想更改pytho

免责声明:我正在编写一个编译器,所以这是黑色巫毒的东西。我知道,我已经穿上了防护服,如果我能找到其他简单的方法,我不会这么做

源文本是标准python,我使用所有可用的运行时类型操作将其转换为其他内容。简而言之,所有标准类型都使用元数据进行了增强。目前,列表是唯一一种非叶类型且为标准的类型。(dict属于同一类别,但我还没有尝试转换它,我可能会遇到同样的问题)。叶类型(int、str、bool、float)和类都可以

要用我的增强列表数据类型优雅地替换标准列表是一个SWoop,我想更改python文本中标记
[]
的默认行为,而不是返回列表,它应该返回类似于列表的类型

但我看不出有什么办法可以拦截这个令牌。 (我可以通过
sys.modules[\uuuu内置]
覆盖令牌
列表
,但
[]
似乎遥不可及。)

有什么想法吗

如上所述,python不允许重写其语法


虽然,包含一个可能对您有帮助(可能没有)的hack。

您是在谈论更改方法
列表。\uuuu getitem\uuuu
?重新编译源代码。@jamylak我知道他想覆盖列表文本。几乎可以肯定有一种更简单、更少hack的方法。这件衣服散发出一股臭味。如果您想为自己编写的代码提供这一点,只需显式添加所需内容。如果是编译器生成的代码,请更改编译器以明确添加所需内容。谢谢您的提问/评论。我更新了文本以更好地解释项目的目标和限制。谢谢,这是我想要的信息。我得另找一条路。