首页 > 后端开发 > Python教程 > 如何在Python中添加和访问实例方法?

如何在Python中添加和访问实例方法?

Susan Sarandon
发布: 2024-12-20 17:38:10
原创
681 人浏览过

How Do I Add and Access Instance Methods in Python?

访问实例方法

在Python中,对象有两种类型的方法:函数和绑定方法。绑定方法与特定实例相关联,并且它们在调用时将实例作为第一个参数传递。另一方面,函数是未绑定的,可以随时修改。

为了说明差异:

def foo():
    print("foo")

class A:
    def bar(self):
        print("bar")

a = A()

print(foo)  # <function foo at 0x00A98D70>
print(a.bar)  # <bound method A.bar of <__main__.A instance at 0x00A9BC88>>
登录后复制

向类定义添加方法

您可以修改类定义来为所有实例添加新方法。例如,以下代码向 A 类添加 fooFighters 方法:

def fooFighters(self):
    print("fooFighters")

A.fooFighters = fooFighters

a2 = A()
a2.fooFighters()  # fooFighters

# Also affects previously defined instances
a.fooFighters()  # fooFighters
登录后复制

向单个实例添加方法

向单个实例添加方法更为复杂。以下尝试失败,因为函数未绑定到实例:

def barFighters(self):
    print("barFighters")

a.barFighters = barFighters

a.barFighters()  # TypeError: barFighters() takes exactly 1 argument (0 given)
登录后复制

要绑定函数,请使用类型模块中的 MethodType 函数:

import types
a.barFighters = types.MethodType(barFighters, a)

a.barFighters()  # barFighters

# Other instances unaffected
a2.barFighters()  # AttributeError: A instance has no attribute 'barFighters'
登录后复制

描述符的进一步探索元类编程提供了更高级的操作对象方法的技术。

以上是如何在Python中添加和访问实例方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板