编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

python中反射的使用(反射 php)

wxchong 2025-07-09 18:07:56 开源技术 7 ℃ 0 评论

1.动态属性访问

class TestClass:
    def __init__(self):
        self.name1 = 'test1'
        self.name2 = 'test122'

obj = TestClass()
test_name = 'name1'
print(getattr(obj, test_name))  # 输出: test1     //获取属性名称为name1的值
setattr(obj, test_name, 'new_test123')//重新设置属性名称名称为name1的值
print(getattr(obj, test_name))  # 输出: new_test123

2.动态方法调用

drg源码的实现方式类似这种方式

class Animal(object):

    def __init__(self, name, age, init_func_str):
        self.name = name
        self.age = age

        func = getattr(self, init_func_str)
        func()

    def sleep(self):
        print("sleeping...")

class Dog(Animal):

    def wangwang(self):
        print("旺旺叫")

    def sleep(self):
        print("仰天睡...")


d = Dog("alex", 23, "sleep")

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表