关于python继承的疑问

关于python继承的疑问

下面代码,子类实例化时必须输入4个参数,是传递给父类吗?我发现无论前三个
参数是什么,都不影响输出结果。可以解释一下吗?

class computer():

def __init__(self,cpu,memory,monitor):

self.cpu='intel'

self.memory='samsung'

self.monitor='boe'

class lenovo(computer):

def __init__(self,cpu,memory,monitor,price):

super().__init__(cpu,memory,monitor)

self.price=price

z=lenovo(1,2,3,'3999元')

print(z.cpu)

print(z.memory)

print(z.monitor)

print(z.price)

同样的情况,请看下面代码,子类实例化时必须输入4个参数,是传递给父类吗?我发现输入什么参数,就输出什么参数。可以解释一下吗?

class computer():             

def __init__(self,cpu,memory,monitor):

self.cpu=cpu

self.memory=memory

self.monitor=monitor

class lenovo(computer):

def __init__(self,cpu,memory,monitor,price):

super().__init__(cpu,memory,monitor)

self.price=price

z=lenovo('intel','samsung','boe','3999元')

print(z.cpu)

print(z.memory)

print(z.monitor)

print(z.price)

谢谢!


回答:

第一个例子中的
init函数虽然传入了三个参数,但是这个参数并没有被用上如下:

def __init__(self,cpu,memory,monitor):

self.cpu='intel'

self.memory='samsung'

self.monitor='boe'

也就是说,不管你传什么值,都不影响结果 cpu='intel' memory='samsung' monitor='boe'的结果。

第二个例子中的init函数

def __init__(self,cpu,memory,monitor):

self.cpu=cpu

self.memory=memory

self.monitor=monitor

函数接收了初始化函数传递进来的值,也就是说cpu memory monitor 会根据你的初始化函数传入值的不同而改变。


回答:

问题出在computer.__init__。第一个例子中初始化的是固定值,第二个例子则利用传递的参数进行初始化。


回答:

没懂你的表述是什么意思,你觉得输出应该是什么样子?


回答:

self 是一个特殊的参数,你可以把它理解为一个对象,self里面的属性是子类和父类是共享的。

以上是 关于python继承的疑问 的全部内容, 来源链接: utcz.com/p/938095.html

回到顶部