动态给对象增加方法是Python的反射机制吗?

动态给对象增加方法是Python的反射机制吗?

我在看博客有一个问题,

https://blog.csdn.net/zhuibus...

给对象动态添加方法。

class Person(object):

def __init__(self, newName, newAge):

self.name = newName

self.age = newAge

def run(self):

print("----%s在跑步----"%self.name)

p = Person("laowang", 100)

#不能单纯的 p.run = run

#因为 run 函数里面有参数,并不会把 p 当作参数传入

#添加方法

#使用 types.MethodType(要添加的函数, 添加函数的对象)

p.run = types.MethodType(run, p)

请问这是Python的反射机制吗?


回答:

这个不算是反射
python的反射机制,核心就是利用字符串去已存在的模块中找到指定的属性或方法,找到方法后自动执行——基于字符串的事件驱动。

可以看看https://blog.csdn.net/qq_41775769/article/details/113527799#:~:text=python%E7%9A%84%E5%8F%8D,%E7%AC%A6%E4%B8%B2%E7%9A%84%E4%BA%8B%E4%BB%B6%E9%A9%B1%E5%8A%A8%E3%80%82

以上是 动态给对象增加方法是Python的反射机制吗? 的全部内容, 来源链接: utcz.com/p/938372.html

回到顶部