• 1、所有对象都有引用计数。无论是给一个对象分配一个新名称还是放入一个容器(如:列表、元祖、字典),该对象的引用就会增加

    a = 37 #创建一个值为37 的对象
        
    b = a #增加37 的引用计数
    
    c = []
    c.append(b)#增加37 的引用计数
    
    del a #减少37的引用计数
    
    b = 28 #减少37 的引用计数
    
    c[0] = 2 #减少37的引用数量
    a  = 37
    import sys
    sys.getrefcount(a)
    11
    #获得引用计数,系统为在程序不同部分共享对象,节约内存。会自动添加一些引用所以,会比较多

    2、数据类型分类和数据类型

      None: None

      数字: int,float,complex,bool

      序列:list,tuple,str,(unicode,xrange,py2中)

      映射: dict

      集合: set,frozenset,

    适用于所有序列的操作和方法:

      索引、切片、len(s)、min(s)、max(s)、sum(s)、del s、del s[:]、all(s) 检查s内所有项是否为True 、any(s)检查s中任意项是否为True  

    sort 和sorted

    sort 是原址排序,只是列表的一个方法;

    sorted产生新的序列,可以用于序列和字典(返回键组成的列表)

    排列过程,都是把元素传入key的函数中进行运算

    a =[3,2,5,3,5,8,5,1,2,4]
    a.sort(key=lambda x:x-1)
    sorted(a,key=lambda x:x-1)
    
    
    a='dfafdsngjfjda'
    sorted(a,key=lambda x:x)#['a','c','e','s']
    
    a = {1:'a',6:'b',3:'c'}
    sorted(a,key=lambda x:x)#[1,3,6]
    
    字典排序
    sorted(a.keys())#[1,3,6]
    sorted(a.values())#['a','b','c']
    sorted(a.items())#[(1,'a'),(3,'c'),(3,'c')]

    类和对象

    __new__ 用于创建实例

    __init__ 用于初始化新实例

    __del__ 用于销毁实例     del x  只是减少对象引用计数,并没有调用 __del__函数

    __call__用于模拟函数行为。

    上下文管理协议

    with context [as var]:
        statements
    
    
    
    with open(r'test.txt') as f:
        f.read(10)
    
    print(dir(open(r'test.txt') ))#1
    print(f)#2
    
    会发现1和2 结果一样都有__enter__和__exit__方法。
    context对象要实现上面两个方法,__enter__方法的返回值会被放入 f 中,
    只要控制流离开with语句相关,就会立刻调用 __exit__()方法。
  • 相关阅读:
    MISC | ctfshow 31
    010editor 没有分块高亮显示了
    BUUCTF | [网鼎杯 2020 朱雀组]phpweb
    python2与python3共存后,如何使用
    kali2020 装不上docker
    php代码审计整理
    [MRCTF2020]Ezpop
    kali没有tcptraceroute如何安装
    [BUUCTF] 真的很杂
    【弱网测试】备份弱网测试相关数据
  • 原文地址:https://www.cnblogs.com/jijizhazha/p/5836421.html
Copyright © 2020-2023  润新知