class Tesla_car:
def __init__(self,yourname):
self.name = yourname
print("Hey'%s',I am a bot and I will tell you about....." %self.name)
self.cells = self.batteries()
def material(self,model_no):
self.model = model_no
print("your car",self.model," made from aluminium")
def color(self,color):
self.color = color
print("the color of your car is:'%s'" %self.color)
class batteries:
def __init__(self):
pass
def materials(self):
self.battery_name = "Tesla tabless 4680 cells"
self.chemicals = "Tesla uses Lithium-Nickle-cobalt-magnesium(NMC) mixed in 8:1:1 ratio"
EV_car = Tesla_car('Blah')
EV_car()
大家好,我正在尝试使用嵌套类,但每当我试图通过编写 self.cells = self.batteries()
它引发了一个错误:“tesla_car”对象没有“电池”属性。如何修复它
3条答案
按热度按时间y53ybaqx1#
似乎您正在尝试组合对象,但方式不对。
实际上,您的类反映了实现组合的完美irl场景:汽车配备(组合)一组不同的对象,包括电池。
在使用合成时,通常需要定义
TeslaCar
及Batteries
作为单独的类,然后分配Batteries
对其中一个TeslaCar
示例变量。例如。:上面的代码只是如何实现组合的一个简单框架,但是您可以很容易地将其适应您的情况。
最后,供参考,避免嵌套类。它是非Python的,当您深入研究简单的oop模式(如组合和继承)时,您会发现它毫无用处。
ht4b089n2#
改变
到
dfddblmv3#
你的
batteries
内部类的缩进错误。目前它在
color
方法,而不是与方法处于同一级别。相反,要: