我对pythonx3.6非常陌生。我有一个类,它有三种方法,可以像计算器一样计算拖拉机的校准值
方程中有八个值。起初,我编写代码来计算一个函数中的所有八个值,但因为开始时需要的某些变量仅在函数结束时计算,因此我无法找到用于有效工作的方程式的顺序。我决定为每个要计算的变量创建一个函数,并在所有其他需要的函数中返回该函数的值
注意:在这个问题中,我只将代码修改为包含方程式的两个相关函数
第一个方法声明一个字典数据类型,其中包含特定的键和值,其中两个属性“fact”和“tim”作为键和值,将根据可用等式中的数据进行计算
第二个函数计算“事实”值,如果“tim”值大于0且不等于null,则计算表示方程式的事实,并计算60秒的分数因子
第三个功能与第二个功能相同,只是它计算时间或“tim”,即拖拉机行驶100米和喷洒田地所需的时间
我将使用kivy textinput来插入变量(但现在不是这样),但我首先必须让类函数工作。我尝试从空闲状态开始,首先创建一个answ=Calibrated类的对象;然后我尝试了answ.calibrationVar(90,“”)。我有一个错误:
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
faktor.calibrationVar(90,"")
File "<pyshell#3>", line 3, in calibrationVar
k = {'tim':self.tim, 'fact':self.fact}
AttributeError: 'Calibrated' object has no attribute 'tim'
请参阅下面我的错误代码:
class Calibrated:
def calibrationVar(self, fact, tim):
k = {'tim':self.tim, 'fact':self.fact}
def factorVar(self):
if k['fact'] == "" and k['tim'] != "" and float(k['tim']):
try:
k['fact'] = float(k['tim']) / 60
return k['fact']
except TypeError:
def timeVar(self):
if k['fact'] != '' and k['tim'] == "" and float(k['fact']):
try:
k['tim'] = 60 * float(k['fact'])
return k['tim']
except TypeError:
结果应该是一个保存函数方程结果的字典k,例如,如果时间=90,那么它将等同于一个字典k{'tim':90,'fact':1.5}。然后,我可以将结果打印到一个临时数据库,该数据库最终将输出一个包含会话结果的pdf
有人能告诉我我做错了什么吗
我设法解决了我的问题:我使用for循环并迭代每个方程,直到字典中的所有值都被解决
@Patrick Artner:你是对的,这是一个范围问题,也是我如何使用自我的问题。谢谢你的帮助
我的正确代码:
class Calibrated:
def calibrationVar(self, tim, fact):
self.tim=tim
self.fact=fact
k = {'tim':tim, 'fact':fact}
for x in range(2):
if k['fact'] == "" and k['tim'] != "" and float(k['tim']):
k['fact'] = float(k['tim']) / 60
if k['fact'] != '' and k['tim'] == "" and float(k['fact']):
k['tim'] = 60 * float(k['fact'])
print(k['tim'],k['fact'])
目前没有回答
相关问题 更多 >
编程相关推荐