我的目标是编写一个可以用来计算设备所有属性的类。在
import numpy as np
class pythagoras:
def __init__(self, a=None, b=None, c=None):
self.a = a
self.b = b
self.c = c
if(a == None):
assert(b != None)
assert(c != None)
self.a = np.sqrt(c**2 - b**2)
elif(b == None):
assert(a != None)
assert(c != None)
self.b = np.sqrt(c**2 - a**2)
elif(c == None):
assert(a != None)
assert(b != None)
self.c = np.sqrt(a**2 + b**2)
else:
assert (a**2 + b**2 == c**2), "The values are incompatible."
example1 = pythagoras(a=3, b=4)
print(example.c)
# 5
example2 = pythagoras(a=3, c=5)
print(example2.b)
# 4
example3 = pythagoras(b=4, c=5)
print(example3.a)
# 3
所以我的问题是简化这个例子:有没有更简单的方法来实现这类问题?对于更复杂的例子,它很快变得相当复杂和难以管理。在
最终目标是要有一个具有所有设备属性的类,例如:
^{pr2}$在这里我们可以想象这些性质相互依赖,根据我对性质的了解,我可以推断出其余的性质。在
对于任何关于编写更好的代码的评论,我都很优雅。尽管我学习并阅读了有关面向对象编码的文献,但在编写这方面我还是缺乏经验。在
试试这个:
试验结果:
^{pr2}$我认为一旦使用
@property
修饰符,计算起来就相当容易了。我给你举个例子。在导入数学
工作行为:
^{pr2}$编辑:更新代码以确保它正常工作。在
相关问题 更多 >
编程相关推荐