(使用eclipse Oxygen的64位Windows 7上的Python 3.6.3)
我试图返回返回True的函数的值。输入相关参数a、v、s、j,并根据结果发生特定情况。我尝试过使用callable,但由于它们都是可调用的,所以不起作用。使用
字典
.items()也不起作用。
也许在某种程度上,可以使用for循环尝试遍历类以查找True并中断循环。不幸的是,我无法设置这样的for循环。我很感激你的帮助。
class cases(object):
def __init__(self, a, v, s, j):
self.a = a
self.v = v
self.s = s
self.j = j
def case_one(self, a, v, s, j):
tj = pow((s/(2*j)),1/3)
a_max = tj * j
v_max = j*(tj**2)
if a >= a_max and v >= v_max:
x = True
else:
x = False
return x, tj, a_max, v_max
pass
def case_two(self, a, v, s, j):
tj = pow(v/j, 1/2)
tv = (s/(j*tj**2)-2*tj)
a_max = tj * j
if a >= a_max and tv > 0:
x = True
else:
x = False
return x, tv, tj, a_max
pass
def case_three(self, a, v, s, j):
ta = (a/j)*(-3/2+pow((1/4)+(s*j**2/pow(a,3)),1/2))
tj = a/j
v_max = j*tj*(ta+tj)
if v >= v_max and ta > 0:
x = True
else:
x = False
return x, ta, tj, v_max
pass
def case_four(self, a, v, s, j):
tj = a/j
ta = (v/a)-(a/j)
tv = (s/v)-(v/a)-(a/j)
if tv > 0 and ta > 0:
x = True
else:
x = False
return x, tj, ta, tv
pass
def __call__(self):
self.case_one()
self.case_two()
self.case_three()
self.case_four()
case = cases.case_four(1,14.5,7,0.25,120)
print(case)
附笔。:
显然,我没有完全理解“self”在类中是如何工作的,因为我必须输入“1”作为第一个参数才能得到任何结果。否则,我会收到一条错误消息:“TypeError:case_four()缺少1个必需的位置参数:“j”,但j等于120。