我正在学习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
感谢您的帮助!
答案 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