如果基类的属性在派生类中被覆盖,如何调用该属性?

2023-12-03

我正在将我的一些类从广泛使用 getter 和 setter 改为更Python 化地使用属性。

但现在我陷入了困境,因为我以前的一些 getter 或 setter 会调用基类的相应方法,然后执行其他操作。但是如何通过属性来实现这一点呢?如何调用父类中的属性getter或setter?

当然,仅调用属性本身就会产生无限递归。

class Foo(object):

    @property
    def bar(self):
        return 5

    @bar.setter
    def bar(self, a):
        print a

class FooBar(Foo):

    @property
    def bar(self):
        # return the same value
        # as in the base class
        return self.bar # --> recursion!

    @bar.setter
    def bar(self, c):
        # perform the same action
        # as in the base class
        self.bar = c    # --> recursion!
        # then do something else
        print 'something else'

fb = FooBar()
fb.bar = 7

您可能认为您可以调用由属性调用的基类函数:

class FooBar(Foo):

    @property
    def bar(self):
        # return the same value
        # as in the base class
        return Foo.bar(self)

虽然这是我认为最明显的尝试 -它不起作用,因为 bar 是一个属性,而不是一个可调用的。

但属性只是一个对象,有一个 getter 方法来查找相应的属性:

class FooBar(Foo):

    @property
    def bar(self):
        # return the same value
        # as in the base class
        return Foo.bar.fget(self)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果基类的属性在派生类中被覆盖,如何调用该属性? 的相关文章

  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • 检查 Python 中的可迭代对象中的所有元素的谓词是否计算为 true

    我很确定有一个常见的习语 但我无法通过谷歌搜索找到它 这是我想做的 用Java Applies the predicate to all elements of the iterable and returns true if all ev
  • 删除 Django 1.7 中的应用程序(和关联的数据库表)

    是否可以使用 Django 1 7 迁移来完全删除 卸载应用程序及其所有跟踪 主要是其所有数据库表 如果没有 在 Django 1 7 中执行此操作的适当方法是什么 python manage py migrate
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • pyspark 数据框中的自定义排序

    是否有推荐的方法在 pyspark 中实现分类数据的自定义排序 我理想地寻找 pandas 分类数据类型提供的功能 因此 给定一个数据集Speed列 可能的选项是 Super Fast Fast Medium Slow 我想实现适合上下文的
  • sklearn 中的 pca.inverse_transform

    将我的数据拟合后 X 我的数据 pca PCA n components 1 pca fit X X pca pca fit transform X 现在 X pca 具有一维 当我根据定义执行逆变换时 它不是应该返回原始数据 即 X 二维
  • 结构差异 sudo() run('sudo 命令')

    我想知道函数之间有什么区别sudo 和函数run sudo u user smth 文档上有 sudo 在所有运行方式上都是相同的 除了它总是换行 调用 sudo 程序中的给定命令以提供超级用户 特权 但有几次 sudo cmd 提示我输入
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • 使用 python 绘制正值小提琴图

    我发现小提琴图信息丰富且有用 我使用 python 库 seaborn 然而 当应用于正值时 它们几乎总是在低端显示负值 我发现这确实具有误导性 尤其是在处理现实数据集时 在seaborn的官方文档中https seaborn pydata
  • Tensorflow 与 Keras 的兼容性

    我正在使用 Python 3 6 和 Tensorflow 2 0 并且有一些 Keras 代码 import keras from keras models import Sequential from keras layers impo
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • ANTLR 获取并拆分词法分析器内容

    首先 对我的英语感到抱歉 我还在学习 我为我的框架编写 Python 模块 用于解析 CSS 文件 我尝试了 regex ply python 词法分析器和解析器 但我发现自己在 ANTLR 中 第一次尝试 我需要解析 CSS 文件中的注释
  • Anaconda 无法导入 ssl 但 Python 可以

    Anaconda 3 Jupyter笔记本无法导入ssl 但使用Atom终端导入ssl没有问题 我尝试在 Jupyter 笔记本中导入 ssl 但出现以下错误 C ProgramData Anaconda3 lib ssl py in
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • Elasticsearch 通过搜索返回拼音标记

    我用语音分析插件 https www elastic co guide en elasticsearch plugins current analysis phonetic html由于语音转换 从弹性搜索中进行一些字符串匹配 我的问题是
  • 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate() ?

    我正在尝试计算玩家每周玩游戏的次数 如下所示 player game objects extra select week WEEK games game date aggregate count Count week 但姜戈抱怨说 Fiel
  • 双击打开 ipython 笔记本

    相关文章 通过双击 osx 打开 ipython 笔记本 https stackoverflow com questions 16158893 open an ipython notebook via double click on osx
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这

随机推荐

  • 从 iOS 导出椭圆曲线密钥以与 OpenSSL 配合使用

    我生成了私钥 公钥对并将其存储在 Secure Enclave 内 它是 256 位椭圆曲线密钥 唯一可以存储在 Secure Enclave 中的密钥类型 I use SecKeyCreateWithData and SecKeyCopy
  • 使用主机 SSH 密钥在 DockerFile 中访问私有 Git 存储库

    我是 Docker 新手 正在尝试让我的 Angular Web 应用程序在容器中构建和运行 我在项目的根目录中有一个非常基本的 Dockerfile 如下所示 Create the image based on the official
  • 如何用C#将委托排队在后台串行执行?

    从游戏循环中 我想在后台开始工作 该工作应该一个接一个地执行 但不应阻止游戏循环 所以理想情况下是一个类BackgroundQueue可以这样使用 BackgroundQueue myQueue new BackgroundQueue ga
  • R构建文档术语矩阵如何匹配其值由空格分隔的短语组成的字典

    当使用R进行文本挖掘时 在对文本数据进行重新处理后 我们需要创建一个文档术语矩阵以供进一步探索 但是和中文类似 英语也有一些特定的阶段 比如 语义距离 机器学习 如果把它们分词成词 它的含义就完全不同了 我想知道如何匹配预先定义的词典值由空
  • 将字符串转换为 HTML - 字符串转换为“a href”元素

    您好 我在将一些 HTML 链接添加到我的 HTML 页面时遇到一些问题 我尝试四处寻找 但到目前为止没有任何帮助 我的页面最初将加载一个片段 div style display inline block color rgb 0 255 1
  • php默认时区错误

    我在尝试安装 Kohana SilverStripe 时收到以下错误 警告 这意味着什么 我该怎么做 Warning date default timezone get It is not safe to rely on the syste
  • SFINAE 检查表达式是否编译并返回 std::true_type [重复]

    这个问题在这里已经有答案了 如果以下表达式编译 我想获得 std true type template
  • 将之前通过手势旋转的 UIImageView 与另一个合并。 WYS 不是 WYG

    我在尝试合并两个 UIImageView 时变得疯狂 情况 背景 UIImageView 用户照片图像视图 一个重叠的 UIImageView 产品照片图像视图 可以拉伸 挤压和 旋转的 我在 UIImages 上调用我的函数 但我可以从包
  • 解析错误:语法错误,意外的 T_ECHO

    过去几天我一直在做一些事情 但是这一段代码总是抛出一个意想不到的 T ECHO 我的朋友们似乎找不到任何问题 而我正处于耐心的边缘 即使删除了嵌套的 while 循环 它仍然会抛出错误 我切换到 while endwhile 语法也是如此
  • GORM 2.0 获取最后插入ID

    我正在使用 MySQL 数据库进行操作GORM v 2 0 我正在使用 GORM 事务将行插入数据库 tx db Begin 在之前的 GORM 版本中 Begin 回sql Tx允许使用的对象LastInsertId 查询返回参数的方法
  • 比较两个列表并从一个列表中删除重复项

    我有一个名为 FormObject 的对象 它包含两个 ArrayList oldBooks 和 newBooks 两者都包含 Book 对象 oldBooks 允许包含重复的 Book 对象 newBooks 本身不允许包含重复的 Boo
  • javascript变量初始化显示NaN

    function sumArray numbers var sum for var i in numbers sum numbers i return sum console log sumArray 1 2 3 4 5 Hi all 结果
  • 理解如何使用 Jython 时遇到的问题

    我刚刚开始学习 Jython 在实施方面遇到了一些问题 我已经浏览了 Jython 2 5 附带的演示文件 但我仍然不确定如何实现 Jython 来获得我想要的东西 目前 我已经将 Java 代码作为进程执行 Python 服务器 Pyth
  • 为什么函数变量在 var 后面时未定义?

    我读到一个好的做法是在每个函数的顶部放置一个定义所有局部变量的 var 语句 下面的代码显示了为什么这是一个好主意 因为显然是一个 varafter使用变量使其未定义 但有人可以告诉我吗why是这样吗
  • Pylint 中的永久配置文件

    我已经为 Pylint 设置了一个自定义配置文件 名称 方便 配置 必须有一种我不必包含的方法 rcfile config每次跑步时 如何永久设置配置文件 当您不指定 rcfile 选项时 Pylint 按以下顺序搜索配置文件并使用找到的第
  • 使用 PHP 和 Apache 设置 HTTP 过期标头

    如何在 PHP Apache 中设置过期标头 我目前正在使用 auto prepend 来提供 gzip 压缩的资源 但我还想最大化 HTTP 缓存 我该如何设置这些 有两种方法可以做到这一点 第一个是在 php 代码中指定标头 如果您想以
  • .EXPORT_ALL_VARIABLES 仅在“虚假”时有效

    The docs提供 EXPORT ALL VARIABLES 只需将其作为目标提及 即可告诉 make 导出 默认情况下 所有变量都传递给子进程 注意沟通 子 make 的变量 变量 递归 然而 以下 makefile 表明 只有通过 E
  • R - 定位两条曲线的交点

    该论坛中有许多关于定位拟合模型和一些原始数据之间的交集的问题 然而 就我而言 我正处于一个早期项目 仍在评估数据 首先 我创建了一个数据框 其中包含一个比率值 其理想值应为 1 0 我已经绘制了数据框并且还使用了abline 绘制水平线的函
  • Google 地图 v2 无法在 Play 商店中使用

    我创建了一个 Android 应用程序 它使用 Google Map api V2 显示 google 地图 并且它在我的手机中运行良好 但是当我将这个应用程序的 apk 上传到 Google Play 商店 时 它没有显示我的地图 谁能告
  • 如果基类的属性在派生类中被覆盖,如何调用该属性?

    我正在将我的一些类从广泛使用 getter 和 setter 改为更Python 化地使用属性 但现在我陷入了困境 因为我以前的一些 getter 或 setter 会调用基类的相应方法 然后执行其他操作 但是如何通过属性来实现这一点呢 如