程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

python中反射的使用(python反向函数)

hfteth 2025-04-30 16:58:09 技术文章 4 ℃

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")
最近发表
标签列表