在类创建中,函数调用未得到应答

时间:2015-11-16 01:21:08

标签: python class oop

我正在学习OOP功能,而且在调用我的Plant类时遇到问题。这是我的代码,我收到名称Plant未定义的错误代码。

class Plant:

    def __init__(self, name, biomass):
        self.name = name
        self.mass = biomass

    def getName(self):
        return str(self.name)

    def getMass(self):
        return float(self.mass)

    def setMass(self,mass):
        self.mass=mass

    tree = Plant('red oak', 1042)
    flower = Plant('rose', 2.7)
    #tree.getName() --> 'red oak'
    flower.setMass(2.85)
    #flower.getMass() --> 2.85

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

如果当前显示的代码缩进与编辑器中的代码相符,那么您试图在类定义本身内声明Plant的实例。

您的代码最终应如下所示:

class Plant:

    def __init__(self, name, biomass):
        self.name = name
        self.mass = biomass

    def getName(self):
        return str(self.name)

    def getMass(self):
        return float(self.mass)

    def setMass(self,mass):
        self.mass=mass

tree = Plant('red oak', 1042)
flower = Plant('rose', 2.7)
#tree.getName() --> 'red oak'
flower.setMass(2.85)
#flower.getMass() --> 2.85

否则,它很像告诉您希望它使您成为Plant的语言,但您还没有告诉语言Plant是什么!< / p>

答案 1 :(得分:0)

Python特别关于缩进,如果一行的缩进与上面一行的缩进相同,则它们都被解释为在同一代码块中。

https://docs.python.org/release/2.5.1/ref/indentation.html

目前,您的代码正在尝试在类中创建一个类对象。 (你不能在该类中创建类的对象) 修复缩进:

class Plant:

    def __init__(self, name, biomass):
        self.name = name
        self.mass = biomass

    def getName(self):
        return str(self.name)

    def getMass(self):
        return float(self.mass)

    def setMass(self,mass):
        self.mass=mass

tree = Plant('red oak', 1042)
flower = Plant('rose', 2.7)
#tree.getName() --> 'red oak'
flower.setMass(2.85)
#flower.getMass() --> 2.85