zoukankan      html  css  js  c++  java
  • python提高

    #python提高

    1. gil是什么:全局解析器锁

    2. gil的作用:单核的情况下可以实现多任务(并发)

    3. gil的解决方案:

    1.换成一个cpu一个进程,进程池

    2.换个java解析器(不建议,性能)

    3.用java,c实现多线程的功能,

    4.后期我一般用多进程加协程实现效率最高

    #拷贝

    1.深拷贝:递归里面的数据全部复制一份,这个性能低,元组,字符串,数字,一般深拷贝跟我们的引用一样

    ![](images/02.png)

    2.浅拷贝:复制第一层的数据

    ![](images/03.png)

    #私有属性

    xx: 公有变量

    _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问

    __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到),但是可以通过特殊的方式去访问,_类名__私有属性名------->这个可以使用(实例对象.__dict__查看)

    __xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__ , __ 不要自己发明这样的名字

    xx_:单后置下划线,用于避免与Python关键词的冲突

    #搜索路径

    导入模块,去我们搜索路径下去一个一个查找,如果找到一个就完成了此次导入

    #导入模块

    from xx import xx :这个你理解成深拷贝,会重新创建一个内存对象,这个如果多个文件需要个性同一个文件的,那么这个不能使用,使用(import xx)

    #封装

    一个功能封装成一个函数,目的是为了重复使用代码,方便查看代码

    #继承

    如果多的子类都需要都一个方法,那么我们会把这个方法给父类,目的,重复使用代码

    #多态

    必须是继承的,一个函数有多种不同的显示效果(结果不一样),这个在Python中不严谨.

    #面向对象开发

    1. 把相关的函数组合在一起形成一个对象,特性:封装,继承,多态.

    #super()

    从继承表中找到当前自己的位置,super()相当于调用继承表中上一个对象,优点:让所有用继承用来的类只初始化一次,继承表可以使用(类.__mro__查看)

    #实例对象和类对象

    1.实例可以访问所有的方法及属性

    2.类对象一般只能访问类属性,静态方法,类方法,当然可以访问实例(但是这种不常用)

    ![](images/04.png)

    #常用的魔法方法

    __init__

    __new__

    __call__ 实例() 这个有可能会用

  • 相关阅读:
    17多校6 HDU
    E. Present for Vitalik the Philatelist 反演+容斥
    HDU
    F. Cowmpany Cowmpensation dp+拉格朗日插值
    hdu6088 组合数+反演+拆系数fft
    任意模数fft
    Codeforces Round #258 (Div. 2)E
    bzoj3670: [Noi2014]动物园
    HDU
    IO-InputStreamReader
  • 原文地址:https://www.cnblogs.com/zxt-cn/p/9178981.html
Copyright © 2011-2022 走看看