首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python类没有属性错误

Python类没有属性错误
EN

Stack Overflow用户
提问于 2014-11-29 14:48:23
回答 3查看 165关注 0票数 1

我写了这门课:

代码语言:javascript
复制
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

我想用它来解析如下的输入,得到每个人的长度和权重:

代码语言:javascript
复制
Dean Johnson    M   1.78    83
Sophia Miller   V   1.69    60

我的程序是这样的:

代码语言:javascript
复制
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‘。这里出了什么问题,这个错误意味着什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-29 15:07:12

如何使用标准python来解决您的输入问题?

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2014-11-29 14:51:58

i是一个字符串。那还会是什么?它是用户输入的一个字符。

您的代码接受该字符串,实例化一个Bmi对象,然后立即抛出该对象,并尝试对原始字符串调用parse_input。

相反,你应该把体重指数分配给一个新的变量,然后调用parse_input。

票数 0
EN

Stack Overflow用户

发布于 2014-11-29 14:57:45

正如falsetru所说,您认为正在调用Bmi对象上的Bmi方法,但实际上是在i上调用它,这是一个字符串。

你可能更喜欢这样做:

代码语言:javascript
复制
from ipy_lib import file_input
from BMI import Bmi

bestand = file_input()
for i in bestand:
    bmi = Bmi(i)
    bmi.parse_input(i)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27203516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档