zoukankan      html  css  js  c++  java
  • python_反射——根据字符串获取模块中的属性

    1.获取当前模块中的属性

    class Person(object):
    
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
    p = Person('wdc',22)
    
    import sys
    q = sys.modules[__name__]   #获取模块本身,并赋值给q
    if hasattr(q,'p'):  #查看当前模块下是否有名字叫“p”的属性
        print(getattr(q,'p'))   #获取当前模块的名字叫“p”的属性
    print(p)    #打印p和上面做比较

     打印输出后发现通过字符串获取的,和直接打印的模块相同。

    2.从其他模块导入方法

      test_mod.py

    def hi():
        print('Hi')

      test.py

    import test_mod #导入其他模块
    if hasattr(test_mod, 'hi'):  #判断test_mod模块是否有名字为“hi”的方法
        f = getattr(test_mod, 'hi')  #获去test_mod模块中名字叫“hi”的方法并赋值给f
        f() #执行获取的方法
    
        setattr(test_mod,'name','wdc')  #为方法添加名字为“name”的属性,并赋值为“wdc”
        print(test_mod.name)    #打印输出为模块添加的属性

  • 相关阅读:
    javascript执行上下文
    javascript深浅拷贝
    javascript模块化
    javascript类型转换
    闭包
    通过插槽分发内容
    组件上使用v-model
    Vue $emit $event 传值(子to父)
    Vue Prop属性(父to子)
    Vue组件全局/局部注册
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/12002494.html
Copyright © 2011-2022 走看看