我正在尝试制作一个简单的Python代码或shell,使我可以将其用作计算器……用于电路分析。理想情况下,我将使用Python的普通计算器根据符号计算等效电阻:R1+R2表示串联的两个电阻,而R1//R2表示并联的两个电阻。希望这意味着我可以像往常一样使用Python,例如:
>>> 1 + 1
2
>>> R1 = 1
>>> R2 = 2
>>> R1 + R2
3
所以串联电阻足够简单(duh)。然而,当谈到并联电阻器时,我想使用地板分割作为运算符,这将允许正常的算术组合:
^{pr2}$其中//division定义为:
def __floordiv__(self, other):
return 1/(1/self.value + 1/other)
在做了一些研究之后,我了解到诸如整数和double之类的内置类不能被重写。但是,我不想真正地将子类化,因为那样会失去简单地将阻力值作为基元类型键入的容易程度。我还有别的办法可以做到吗?我希望这是一个临时效果,它只存在于很小的范围内,并且可以在shell文件的开头执行。谢谢!在
您可以创建一个对象,使其看起来或多或少像您可以使用具有不同含义的整数字面值。在
例如,如果您正确定义
p
对象的运算符,则可以使用如下语法:或者,您可以这样做:
^{pr2}$甚至:
我可能只会在我自己做的项目中使用这种“操作符魔法”,或者如果它极大地提高了可读性。在
最好使用子类。有了int/double,你就不能使用电阻之外的其他元素了。你可以用很短的名称创建类,比如“R”或“resisters”,“C”代表电容器等,这样不会有太多开销,而且可读性更强
相关问题 更多 >
编程相关推荐