首页 > 其他分享 >面向对象--反射

面向对象--反射

时间:2022-11-14 23:23:49浏览次数:43  
标签:反射 http -- self request 面向对象 handler print method

--反射

可以用过字符串的形式来操作(增删改查)一个对象的属性

有几种方法

  getattr()获取

  hasattr()判断

  setattr()赋值

  delattr()删除

 

class Person(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age

p = Person("alex",22)
if hasattr(p,"name2"):      #hasattr()判断对象P中是否存在name2的属性
    print("存在name2")
else:
    print('不存在name2')

print(getattr(p,"age"))
setattr(p,"sex","male")
print(p.sex)

 

应用场景:

在django的框架中的cbv的视图中的dispatch()方法,就是用反射来判断http请求的类型

    def dispatch(self, request, *args, **kwargs):
        # Try to dispatch to the right method; if a method doesn't exist,
        # defer to the error handler. Also defer to the error handler if the
        # request method isn't on the approved list.
        if request.method.lower() in self.http_method_names:
            handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
        else:
            handler = self.http_method_not_allowed
        return handler(request, *args, **kwargs)

 

标签:反射,http,--,self,request,面向对象,handler,print,method
From: https://www.cnblogs.com/powfu/p/16890907.html

相关文章

  • 笛卡尔树讲解
    前言笛卡尔树算是比较基础的数据结构了,但需要笛卡尔树的题目较少,且很多笛卡尔树的题都可以用其他解法解决,所以这个算法并不算的上热门,然而就在前天晚上,CF1748E这道......
  • CSharp: Composite Pattern in donet 6
     ///<summary>///组合模式CompositePattern亦称:对象树、ObjectTree、CompositePattern///</summary>publicabstractclassGift{......
  • 汉明距离
    两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给你两个整数x和y,计算并返回它们之间的汉明距离。示例1:输入:x=1,y=4输出:2解释:1......
  • python比较与身份运算符
    比较运算符==   a==b!=   a!=b>    a>b<    a<b>=   a>=b<=   a<=b<>   判断是否不等于 a<>b  在pyt......
  • elasticsearch多字段聚合实现方式
    目录1、背景2、实现多字段聚合的思路3、需求4、数据准备4.1创建索引4.2准备数据5、实现方式5.1multi_terms实现5.1.1dsl5.1.2java代码5.1.3运行结果5.2script实现5......
  • java-io基础
    一、流的分类1、按操作的数据单位或传输方式:字符流,字节流。字节是给计算机看的,字符是给人看的2、数据的流向:输入流,输出流3、流的角色:文件流(节点流),处理流从数据来源或操......
  • 元数据Metadata到底有什么用
    什么是元数据元数据Metadata很简单,是关于数据的数据。这就意味着是数据的描述和上下文。他有助于组织和发现理解数据。举例: 1张照片中除了照片本身还是,照片的......
  • SDC文件常用时序约束语句
    时钟约束1.基本约束create_clocks-nameclk_name-period10[get_portsclk_in]这是最基本的时钟约束语句,为时钟管脚创建一个时钟,综合工具会根据创建的时钟进行布局......
  • 【Javaweb】了解link标签
    link标签的属性标签就是定义文档和外部的关系,常见用途是链接样式表。通常指存在于head部分。规定被连接文档的位置<linkrel='stylesheet'href='./ease.css'type='t......
  • 线性表相关背诵知识点
    1.顺序表不能完整地表示树2.顺序存储不止能用于存储线性结构3.用数组存储线性表时,还应该用一个变量来存储线性表的长度指针类型:L->data[i];另一个是L.data[i]4.若线性......