python - 覆盖父类中的函数
问题描述
我只是在看这个例子,其中有代码:
class Parent(object):
def __init__(self):
self.value = 4
def get_value(self):
return self.value
class Child(Parent):
def get_value(self):
return self.value + 1
当函数get_value
在 Child 类中运行时,它是self.value
通过检查Class Parentself.value
中的函数中的值是什么来确定值,还是通过检查类 Parent 中的函数中的值是什么来确定值?init
self.value
get_value
更新
class Parent(object):
def __init__(self):
self.value = 4
def get_value(self):
self.value = self.value + 7
class Child(Parent):
def get_value(self):
return self.value + 1
解决方案
当您self.value
在child
类中访问时,它将获得该类中的当前self.value
状态Parent
。因此,如果不更改,它将返回__init__
加 1 的值。
这个例子稍微简化了一点,但是如果你要给setter
它添加一个方法,最好理解它访问的是什么值。
就像是:
class Parent(object):
def __init__(self):
self.value = 4
def get_value(self):
return self.value
class Child(Parent):
def set_value(self, x):
self.value = x
def get_value(self):
return self.value + 1
c = Child()
print(c.get_value()) # 5
c.set_value(3)
print(c.get_value()) # 4
推荐阅读
- excel - 用公式填充范围
- jquery - Jquery 未在 GitHub 页面中加载,但在 CodePen 中很好
- android - super.onCreate(savedInstanceState); 不会立即调用父类的 onCreate() 方法。为什么?
- mysql - MYSQL:如何对数字 DESC 进行排序,加值最高
- ios - 你还能在 Xcode 10.1 的应用商店上发布用 Swift 3 编写的应用吗?
- autohotkey - 一旦活动窗口不再是所需的窗口,如何停止脚本
- python - 预期dense_input的形状为(7,),但得到的数组形状为(1,)
- php - 根据条件过滤数组元素
- mysql - 检索满足第一个表条件的所有值
- javascript - Node.js 和 Express - 最简单的缓存方法