子类方法中调用父类函数中self.变量是子类的还是父类的
时间: 2023-09-03 14:13:01 浏览: 94
调用父类方法-2021护网行动面试题目
在子类中调用父类的方法时,self指向的是子类的实例,所以self.变量会先在子类中查找,如果找不到则会到父类中查找。
例如:
```python
class Parent:
def __init__(self):
self.x = 1
def print_x(self):
print(self.x)
class Child(Parent):
def __init__(self):
super().__init__()
self.x = 2
parent = Parent()
child = Child()
parent.print_x() # 输出 1
child.print_x() # 输出 2
```
在这个例子中,我们定义了一个名为Parent的类,它有一个构造函数__init__,它设置了self.x = 1,并且有一个print_x方法,它打印self.x的值。我们还定义了一个名为Child的类,它继承自Parent,并且在它的构造函数__init__中设置了self.x = 2。我们创建了Parent和Child的实例,并分别调用它们的print_x方法。在Child实例上调用print_x方法时,它会先在Child类中查找x变量,因为在Child类中有x变量的定义,所以它的值为2,而在Parent类中的x变量值为1,所以在Parent实例上调用print_x方法时,它的值为1。
阅读全文