zoukankan      html  css  js  c++  java
  • pyhton反射hasattr getattr delattr

    https://www.cnblogs.com/Eva-J/articles/7351812.html

    类.属性

    类.方法

    python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)

    在做程序开发中,我们常常会遇到这样的需求:需要执行对象里的某个方法,或需要调用对象中的某个变量,但是由于种种原因我们无法确定这个方法或变量是否存在,这是我们需要用一个特殊的方法或机制要访问和操作这个未知的方法或变量,这中机制就称之为反射。接下记录下反射几个重要方法

    hasattr(类名, 方法名) 判断对象中时候存在这个方法或者变量  存在返回true  不存在返回false

    class A():
        name = 'zhouta'
        @classmethod
        def funca(cls):
            print('i love taylor')
    
    a = A()
    # print(a.name)
    #hasattr(类名, 方法名)两个参数, 方法在类中则返回true, 不在则返回false
    se = hasattr(A,'funca')
    print(se)
    se2 = hasattr(A,'dd')
    print(se2)

    getattr 获取对象中的方法或变量的内存地址

    class A():
        name = 'zhouta'
        @classmethod
        def funca(cls):
            print('i love taylor')
    
    a = A()
    
    se3 = getattr(A,'name')
    print(se3)
    se4 = getattr(A,'funca')#获取funca内存地址
    se4()#执行方法

    setattr添加属性和值

    setattr(A,'age',34)#添加属性age, 添加值为34
    print(getattr(A,'age'))  #获取值

    获取对象中的方法或变量的内存地址

  • 相关阅读:
    模板层
    视图层
    网络编程
    面向对象的三大特性之继承
    面向对象的三大特性之封装
    面向对象的属性和方法
    面向对象编程
    垃圾回收机制
    re模块、正则表达式
    模块之hashlib、hmac、configparser、subprocess、xlrd、xlwt、xml
  • 原文地址:https://www.cnblogs.com/taysem/p/12157510.html
Copyright © 2011-2022 走看看