zoukankan      html  css  js  c++  java
  • __new__方法和pop方法(判断)

    new方法(构造方法)是在函数一加载的时候就被执行,在init方法执行之前被执行

    def __new__(cls,*args,**kwargs):

    if kwargs.pop('many',False)##判断many是true还是flase
    return cls.many_init(*args,**kwargs)##如果是false的话,就返回当前类的方法
    判断这个是true还是false

    return super(Base,cls).__new__(cls,*args,**kwargs)否则的话,就返回父类的new方法
    就是listserializer方法

     

    在init方法执行之前,先执行了__new__方法

    xx(obj,many=False)上面返回的是xx,当前的对象进行序列化操作(当前类的序列化对象)
    xx(queryset,many=True)下面返回的是listserializter(对每一个对象进行序列化操作)

     

     

     

     

    字典的pop方法(可以判断name属性存不存在值)

     

    one={'name':'2132332'}
    #one={'name':''}当是这种形式的话,就执行下面的函数,不存在值
    ###这个是判断你存不存在后面的这个值,通过pop的方法,
    if one.pop('name'):
    print('存在值')
    print(one)

    else:
    print('other')
    print(one)


    结果:

    存在值
    {}


    '''
    pop方法讲解:

     

    当这个字典的某属性后面存在值的话(不管是什么都可以,只要存在值),那么就可以pop操作成功,移除成功,就是那个字段后面对应了值的话,name后面存在值
    当字典后面不存在值的话,那么就不可以移除,那么就为false,执行下面的函数
    '''

     

    按照索引来移除:

    a=[12,435,54,656]
    a.pop(-1)
    print(a)
    结果:
    [12, 435, 54]
  • 相关阅读:
    Struts2中的类型转换失败
    使用 paramsPrepareParamsStack 拦截器栈后的运行流程
    Action请求流程分析
    Struts2的默认拦截器执行顺序
    网络通信的整个流程
    路由和交换机工作原理
    网络编程之socket
    关于socket的setsockopt的使用
    socket工作原理深入分析
    网络通信协议(互联网协议)
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/9899499.html
Copyright © 2011-2022 走看看