方法中的Python类属性

2024-10-02 20:40:15 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑下面的代码,我想让你解释为什么代码不起作用,因为我看到别人在{{CD1}}之外分配类属性。 从一个方法调用另一个方法中的属性,我的方法有什么问题。下面三个打印所有结果错误,表示该类没有任何属性

class Person(object):
    def __init__(self, age, height):
        self.age = age
        self.height = height

    def weight_kg(self):
        self.weight = 60

    def ratio_kg2height(self):
        self.ratio = self.weight / self.height
        return self.ratio


mike = Person(23, 170)
print mike.weight
print mike.ratio_kg2height()
print mike.ratio

Tags: 方法代码selfage属性def错误person
1条回答
网友
1楼 · 发布于 2024-10-02 20:40:15

您没有在__init__方法中定义weight属性,因为在访问该属性之前不调用weight_kg方法,因此该属性不可用

这里有一些选项,基本选项是先初始化它,您只需在__init__方法中调用您的方法:

class Person(object):
    def __init__(self, age, height):
        self.age = age
        self.height = height
        self.weight_kg()
        self.ratio_kg2height()

    ...

这里有一个live example

相关问题 更多 >