关于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