- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名 Python 初学者,正在阅读有关 dunder 方法的文章。是否可以通过某种方式更改 int
或 str
等类的 dunder 方法?
例如,我能否以某种方式更改 int
类的 dunder 方法 __add__
以执行乘法而不是加法?那么如果我输入 3 + 4,输出是 12?
最佳答案
您可以子类化,但值得指出的是,这可能是一个坏的想法,因为没有人合理地期望加法执行乘法:
class FunkyInt(int):
def __add__(self, other):
return FunkyInt(self * other)
f = FunkyInt(3)
print(f + 4)
# 12
关于python - 是否可以更改 Python 中内置类的 dunder 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65582036/
只是想获取给定模块的包名称,为什么 dunder package 属性不起作用? import sys, inspect, os, numpy as np print("The os package
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我知道 Python dunder 变量是什么,并且我知道名称修改。 但由于某种原因,我无法访问以下代码片段中的 dunder 变量: for node in ast.find_all((Ca
包装一个特殊的方法是可行的,但对实例的行为没有预期的影响。 例如,如果我调用 a.__call__(x),装饰 a.__call__ 方法(实例 a)确实会生效,但如果我调用 a(x)。 考虑以下创建
这个问题在这里已经有了答案: Does the `is` operator use a __magic__ method in Python? (2 个答案) 关闭 9 年前。 在查看文档时,特别是
“Dunder”的定义(Double underscore):http://www.urbandictionary.com/define.php?term=Dunder 根据 Python 代码中模块
我正在使用 Sphinx 的自动摘要自动为我的模块的每个成员生成单独的 rst 文件。文档按预期创建,除了生成的第一个文件缺少除 __init__ 之外的所有 dunder 方法。 在我的 conf.
我想将 __mul__ 和 __rmul__ 类方法添加到类中,以便能够执行以下语法: object - 3 * ObjectType 但是当我尝试执行以下操作时: >>> class ClassMu
上下文:我想在我没有创建的对象上使用 heapq(以及其他任何东西),这些对象本身没有 __lt__ 运算符。我可以吗? (没有包装类)。 类(class): class Node: def
我是一名 Python 初学者,正在阅读有关 dunder 方法的文章。是否可以通过某种方式更改 int 或 str 等类的 dunder 方法? 例如,我能否以某种方式更改 int 类的 dunde
我正在编写一个提供关于变量名的建议的项目,我希望它判断一个名称是否与 reserved classes of identifiers 中的任何一个匹配。 .第一个(“私有(private)”)非常简单
在新发布的 Python 3.8 中有一个新的类型注释 typing.TypedDict .它的文档提到 The type info for introspection can be accessed
例如,在 Python 中使用 __eq__ 是否与在 C++ 中使用 operator== 相同?魔术方法在 Python 中还有其他功能吗? 最佳答案 是也不是。虽然实现/覆盖 __eq__、__
有__and__和 __or__为 &和 |分别是 and 是否有可修改的 dunders和 or也? 如果是这样,我似乎无法找到它们。它们未列在此处的文档中: https://docs.python
我正在尝试创建一个对象代理。 属性/属性查找可以通过简单地实现 __getattribute__ 来完成。 , __setattr__和 __delattr__方法。 但是,其他功能如 len(x),
有一个大型 python 项目,其中一个类的一个属性在某些地方有错误的值。 它应该是 sqlalchemy.orm.attributes.InstrumentedAttribute,但是当我运行测试时
我正在使用 python 实现一个狭窄且有限的脚本 DSL,我希望能够在功能上执行以下等效操作: import numpy as np a = np.arange(10) a[ a > 5 ] +=
我一直在尝试创建一个理性类,并添加一个 __str__ dunder 方法返回 p(分子)除以 q(分母)。当我尝试打印对象 Rational_1 时,它只提供 init 方法的输出,并且不返回 __
我是一名优秀的程序员,十分优秀!