面经-python

***面向对象

  • 类:用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 类变量:类变量在整个实例化的对象中是公用的。
  • 数据成员:类变量或实例变量,用于处理类及实例的相关数据

一、python内存管理

对象的引用计数机制、垃圾回收机制、内存池机制

1. 对象的引用计数
Python内部使用引用计数,来保持追踪内存中的对象。当对象被创建时,就创建了一个引用计数,当对象不再被需要时,这个对象的引用计数为0,会被垃圾回收。
a=23,23这个对象并没有在内存中新建,Python启动解释器时会创建一个小整数池,-5~256之间的对象会被自动创建加载到内存中等待被调用,a=23是为23这个整数对象增加了一个引用。

2. 垃圾回收
当一个对象的引用计数归零时,会被垃圾回收。
当两个对象a,b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象的名称。但引用计数不会归零,从而导致内存泄露。
Python会定期执行一个循环检测器,搜索不可访问的对象的循环,并删除他们

3. 内存池机制
Python提供了对内存的垃圾回收机制,将不用的内存放到内存池。用于管理对小块内存的申请和释放。
小于256个字节的对象都使用pymalloc,而大的对象使用系统的malloc
对于Python对象,如整数、浮点数和List,都有其独立的私有内存池,对象间不共享它们的内存池。

二、构造函数
python的构造函数是 _init_ ( self [,args...] )
java中构造函数主要用来完成对象的初始化工作,构造函数必须与类的名字相同,且不能有返回值,返回值也不能为void,构造函数可以有多个参数。一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载。

例题:

  • 对于派生类的构造函数,在定义对象时构造函数的执行顺序为? 213
    1:成员对象的构造函数
    2:基类的构造函数
    3:派生类本身的构造函数

  • 构造函数和析构函数不能被继承,只能调用
    可以通过参数个数或参数类型区分构造函数,不能通过返回值区分
    类的构造函数可以为内联函数、重载函数或带默认形参值的函数
    构造函数可以是私有的
    构造函数不能被覆盖

  • 静态成员不属于某个对象,而属于类本身。
    可以在构造函数中使用或修改静态成员的值,但不能初始化它

  • os模块
    os 模块提供了非常丰富的方法用来处理文件和目录。
    os.chdir(path) 改变当前工作目录
    os.chmod(path,mode) 更改权限
    os.close(fd) 关闭文件描述符fd
    os.link(src,dst) 创建硬链接,名为参数dst,指向参数src
    os.open(file,flags[,mode]) 打开一个文件,设置需要的打开选项
    os.pipe() 创建一个管道,返回一对文件描述符(r,w)
    os.path 模块 获取文件的属性信息。

衍生:
文件描述符
硬链接
管道(进程间通信)

  • python模拟http请求

  • python安装库
    pip install 库名

全部评论

相关推荐

12-19 22:04
武汉大学 Java
点赞 评论 收藏
分享
在写周报的打工人很独...:这个笔试昨天晚上做了一下,真难啊,前后端,ai全有
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务