方法分配和对象

2024-02-28

我有一个 python 问题: 我想将一个方法分配给另一个类的对象,但在这个方法中使用它自己的属性。由于我的项目中有许多具有不同使用方法的容器(不在该示例中),因此我不想使用继承,这将迫使我为每个实例创建一个自定义类。

class container():
    def __init__(self):
        self.info = "undefiend info attribute"

    def use(self):
        print self.info


class tree():
    def __init__(self):

        # create container instance
        b = container()

        # change b's info attribute
        b.info = "b's info attribute"

        # bound method test is set as use of b and in this case unbound, i think
        b.use = self.test

        # should read b's info attribute and print it
        # should output: test: b's info attribute but test is bound in some way to the tree object
        print b.use()

    # bound method test
    def test(self):
        return "test: "+self.info


if __name__ == "__main__":
    b = tree()

非常感谢您阅读本文,也许对我有帮助! :)


干得好。您应该知道 self.test 已经绑定,因为当您进入 __init__ 时,实例已经创建并且其方法已绑定。因此,您必须使用 im_func 成员访问未绑定的成员,并将其与 MethodType 绑定。

import types

class container():
    def __init__(self):
        self.info = "undefiend info attribute"

    def use(self):
        print self.info


class tree():
    def __init__(self):

        # create container instance
        b = container()

        # change b's info attribute
        b.info = "b's info attribute"

        # bound method test is set as use of b and in this case unbound, i think
        b.use = types.MethodType(self.test.im_func, b, b.__class__)

        # should read b's info attribute and print it
        # should output: test: b's info attribute but test is bound in some way to the tree object
        print b.use()

    # bound method test
    def test(self):
        return "test: "+self.info


if __name__ == "__main__":
    b = tree()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

方法分配和对象 的相关文章

随机推荐

  • salesforce 中的联合身份验证和委派身份验证

    有人知道 salesforce 中的联合身份验证和委托身份验证之间的区别吗 您能解释一下这两种方法中的请求流程吗 主要区别在于联合身份验证上安全断言标记语言 SAML 的使用 委托认证如果您的组织中有移动用户 或者您想要启用委派身份验证 单
  • 如何判断我的应用程序是否从后台恢复?

    我想在应用程序进入后台时锁定它 当它恢复时我想显示我自己的锁定屏幕 锁屏是我的应用程序的一个活动 成功输入密码后 用户可以看到恢复的 Activity 否则他不能 我怎样才能做到这一点 主要问题是 当你开始一个项目时 你必须得到一个特定的行
  • 如何在 Django 中将两个模型字段表示为一个表单字段?

    我似乎无法弄清楚如何在 Django 中正确处理以下情况 我在模型中有一个日期范围 我将其存储为两个单独的字段 date start and date end start date models DateTimeField end date
  • 如何解决 C++ 中友元声明的循环依赖?

    为什么以下代码无法编译以及如何修复它 我得到的错误是 使用未声明的标识符 Foo 虽然Foo在错误发生的地方 在friend声明于Bar foo h ifndef FOO H define FOO H include bar h neede
  • 使用位掩码组合枚举值

    我知道可以在枚举值中使用位掩码 但我不知道如何创建它 我有一个简单的枚举 enum State minimizing 0 maximizing minimized maximized 状态总是State minimized or State
  • 在同一行初始化两个变量

    我很难找到这个概念的权威例子或讨论 如果我的 Ruby 方法中有 2 个数字变量 我需要将它们初始化为零 它们将用作计数器 这可以吗 安全吗 它在我的测试中有效 而不是这个 foo 0 bar 0 你可以这样做 foo bar 0 这似乎是
  • 了解Android联系人的架构

    我正在开发一个 Android 应用程序 它需要知道何时添加 更新 删除联系人 所以我读了几篇文章 据我所知 每当联系人发生更改时 我们都可以通过内容观察者收到通知 但我们无法获取已添加 更新 删除的联系人 因此 我阅读了官方 API 并准
  • 来自 API 的 2 个并发请求数据混淆

    我使用 Nodejs 作为我的应用程序 API 的后端 但我意识到当有 2 个不同的用户不断请求同一个方法时 从 MySQL 请求返 回的数据有时可能会混淆 这是我的代码 router get v1 getList function req
  • 使用 Parcel 为浏览器构建 - 如何不输出 CommonJS 或 ES 模块

    我正在尝试编译一个我编写的库 以便可以将分布式文件放入script标记并在浏览器中运行 我正在尝试用 Parcel 2 来做到这一点 我觉得我已经很接近了 但每次我认为我在那里时都会出现一些新问题 关键是我想要它not捆绑外部依赖项 例如
  • 如果使用遗留库,如何避免 Java 中的未检查转换警告?

    我喜欢java中的泛型功能并且经常使用它 但如果我使用尚不支持泛型的库 我就会遇到问题 Servlet 就是一个例子 如果你使用ServletRequest getParameterMap 结果将是一个原始地图 但它只包括String作为钥
  • 在 R 3.1.1 (Windows) 中安装 rCharts 时出错

    是否有适用于 R 3 1 1 的 rCharts 版本 我尝试了2种方法 均失败 方法一 devtools install github ramnathv rCharts Downloading github repo ramnathv r
  • 是否可以在 Meta 刷新之前运行 JavaScript 代码

    一直以来 我们都在使用这个可靠的网站重定向 HTML JavaScript 代码
  • 如何在 Swift 中实现范围滑块

    我正在尝试实现范围滑块 并且使用了名为的自定义控件NMR范围滑块 https www cocoacontrols com controls nmrangeslider 但是当我使用它时 滑块根本不出现 难道也是因为它都是用 Objectiv
  • TestNG 跳过测试 - 为什么?

    我正在使用 testng 和 selenium 测试一个网络应用程序 测试主要包括打开应用程序的几个页面 并针对每个页面执行一些特定的活动 因此 我有一个执行 打开页面 测试的抽象基类 并定义了一个用作该测试的数据提供程序的抽象方法 然后有
  • 比较字符串时忽略希伯来语元音

    晚上好 我希望你能帮助我解决这个问题 因为我正在努力寻找解决方案 我有一个单词提供者 他给我元音希伯来语单词 例如 Vowelled 不元音 元音 不元音 与我的提供者不同 我的用户通常无法输入希伯来语元音 我也不应该希望他这样做 用户故事
  • Hill Cipher算法中如何计算逆密钥矩阵?

    我发现很难理解希尔密码算法中矩阵逆的计算方式 我知道这一切都是通过模算术完成的 但不知何故 事情并没有加起来 我真的很感激一个简单的解释 考虑以下希尔密码密钥矩阵 5 8 17 3 请使用上面的矩阵进行说明 你必须学习线性同余定理 http
  • Boost ASIO 和 co_await- 与任何第三方回调一起使用吗?

    一个简单的函数 awaitable
  • 仅在 Android 8.0 及更高版本上资源和布局方向渲染不正确

    我有一个多语言应用程序 主要语言为英语 次要语言为阿拉伯语 我正在打电话setLocale in the onCreate 每一个的Activity在我的应用程序中 public static void setLocale Locale l
  • 从桌面应用程序与 Silverlight 4 LocalMessageReceiver 通信

    我正在为 Silverlight 4 OOB 应用程序开发一个小助手应用程序 安装它可以稍微增强 SL 的功能 改进剪贴板支持 全局热键等 我知道 Silverlight 的本地消息 API 基于 ALPC 这是一个相当未记录的 Windo
  • 方法分配和对象

    我有一个 python 问题 我想将一个方法分配给另一个类的对象 但在这个方法中使用它自己的属性 由于我的项目中有许多具有不同使用方法的容器 不在该示例中 因此我不想使用继承 这将迫使我为每个实例创建一个自定义类 class contain