您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

可以重写Python中的文字吗?

可以重写Python中的文字吗?

这是Python的明智选择。

首先,关于修补内置类型,这主要是设计 决策 ,其次才是优化。我从潜伏在Python邮件列表中的很多教训中学到,对内置类型进行猴子修补,尽管对于小型脚本来说很有趣,但对于任何较大的对象都没有用。

一方面,图书馆对类型做出某些假设。如果鼓励扩展认类型,那么许多库最终将彼此争斗。这也会阻止 创建 新类型- 双端队列是双端队列,有序集合是有序集合,字典是字典,应该是这样。

文字语法是特别重要的一点。如果您不能保证[1, 2, 3]列表,那么可以保证什么?如果人们可以改变这些行为,将会对全球产生巨大影响,从而破坏许多代码的稳定性。还有一个原因 goto语句全局变量都望而却步。

有一种独特的黑客,我 喜欢,虽然。当您看到时r"hello",这似乎是扩展的文字形式。

那为什么不r[1, 2, 3]呢?

class ListPrefixer:
    def __init__(self, typ):
        self.typ = typ

    def __getitem__(self, args):
        return self.typ(args)

class MyList(list):
    def each(self, func):
        return MyList(func(x) for x in self)

e = ListPrefixer(MyList)

e[1, 2, 3, 4].each(lambda x: x**2)
#>>> [1, 4, 9, 16]

最后,如果您真的想做深入的AST黑客,请查看MacroPy

python 2022/1/1 18:48:40 有401人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶