我写了这门课:
class Bmi(object):
def __init__(self,regel):
self.persoon = regel
self.lengte = []
self.gewicht =[]
def parse_input(self,regels):
for regel in regels:
lengte = regel.split('\t')[2]
gewicht = regel.split('\t')[3]
self.lengte = lengte
self.gewicht = gewicht
return self.lengte, self.gewicht我想用它来解析如下的输入,得到每个人的长度和权重:
Dean Johnson M 1.78 83
Sophia Miller V 1.69 60我的程序是这样的:
from ipy_lib import file_input
from BMI import Bmi
bestand = file_input()
for i in bestand:
Bmi(i)
i.parse_input() 我得到了AttributeError:'str‘对象没有属性’parse‘。这里出了什么问题,这个错误意味着什么?
发布于 2014-11-29 15:07:12
如何使用标准python来解决您的输入问题?
from BMI import Bmi
with open('path.to.file') as f_in:
for line in f_in:
bmi = Bmi(line.split("\t")[0]) #pass the person's name
bmi.parse_input(line) #pass all the line, and parse_input will do the stuff发布于 2014-11-29 14:51:58
i是一个字符串。那还会是什么?它是用户输入的一个字符。
您的代码接受该字符串,实例化一个Bmi对象,然后立即抛出该对象,并尝试对原始字符串调用parse_input。
相反,你应该把体重指数分配给一个新的变量,然后调用parse_input。
发布于 2014-11-29 14:57:45
正如falsetru所说,您认为正在调用Bmi对象上的Bmi方法,但实际上是在i上调用它,这是一个字符串。
你可能更喜欢这样做:
from ipy_lib import file_input
from BMI import Bmi
bestand = file_input()
for i in bestand:
bmi = Bmi(i)
bmi.parse_input(i)https://stackoverflow.com/questions/27203516
复制相似问题