【问题标题】:Is there a way to redefine a built-in class in python? [closed]有没有办法在python中重新定义一个内置类? [关闭]
【发布时间】:2021-12-22 21:59:28
【问题描述】:

有没有一种方法可以重新定义python 中的内置类(例如int)。当我只做class int 时,类型是__main__.int 而不是int,有没有办法在没有__main__ 的情况下定义它?

【问题讨论】:

  • 你希望这个效果是什么?
  • 当然,您可以使用int = float,但有什么意义呢?这似乎是一个所谓的“xy 问题”。换句话说,你问错了问题。
  • 我真的不知道,我只是想知道是否有任何方法可以做到这一点,可能能够编辑两个整数的交互方式,例如将 + 或 - 更改为两个数字跨度>
  • 大部分编译到解释器中,所以你不能改变它。
  • @RyanNygard 你的意思是分配给,而不是超载。但是,是的,不支持动态修改内置类。虽然如果您愿意尝试了解实现细节和其他黑魔法,这是可能的。

标签: python


【解决方案1】:

如果不编辑用 c 编写的 python 源代码,我认为这是不可能的 但是您可以从 int 等内置类继承,然后添加您的方法,例如:

class MyList(list):
    def sumOfAll(self):
        return sum(self)
myList = MyList([1,2,3])
print(myList.sumOfAll())

输出:6

【讨论】:

  • 好的,我以为这是不可能的,但只是想检查一下,感谢您的澄清。
  • 在不编辑源代码的情况下可能,但不建议这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多