python面试总结1(基础章节)

python语言基础
  • 语言特点

    python是静态还是动态类型?是强类型还是弱类型

    • 动态强类型语言
    • 动态还是静态指的是编译期还是运作期确定类型
    • 强类型指的是不会发生隐式类型转换

    python作为后端语言优缺点

    • 胶水语言,轮子多,应用广泛
    • 语言灵活,生产力高
    • 性能问题、代码维护问题、pythn2/3兼容问题

    什么是鸭子类型

    • 关注点在对象的行为,而不是类型
    • 比如 file,StringIo,socket对象都支持read/write方法
    • 再比如定义了__iter__魔术方法的对象可以用for迭代

    什么是monkey path

    • 所谓monkey patch就是运行时替换
    • 比如gevent库需要修改内置的socket
    • from event import monkey; monkey.patch_socket()

    什么是自省?

    • 运行时判断一个对象的类型的能力
    • python一切皆对象,用type,id,isinstance获取对象类型信息
    • Inspect模块提供了更多获取对象信息的函数

    python之蝉

    • 编写关于python编程的准则

    • import this

    • 编程拿不准的时候可以参考

      import this
      
  • 语法基础

  • 高级特性

讲讲你觉得最有技术含量的项目???

python2/3差异

python3改进

  • print成为函数 ,python2是关键字

  • 编码问题。python3不在有unicode对象,默认str就是unicode

    #python2
    s = u'中文'
    type(s)
    unicode  "操作的时候使用画unicode"
    
    #python3
    s = '中文'
    type(s)  "保存的时候使用str"
    str
    
  • 除法变化

    python2
    
    5/2 = 2
    
    python3
    
    5/2 = 2.5
    5//2 = 2
    
  • python3类型注解

  • 优化super()方便直接调用父类函数

    #python2
    
    super(C,self)
    
    #python3
    
    super()
    
  • 高级解包操作。 a,b, *rest = range(10)

  • keyword only 限定关键字参数

  • python3重新抛出异常不会丢失栈信息

  • 一切返回迭代器(ran ge,zip,map,dict,values)

python3新增

  • yield from 链接子生成器
  • asyncio内置库,async/await原生协程
  • 新的内置库 enum,mock,asyncio

python3改进

  • 生成的pyc文件统一放到_pycache_
  • 一些内置库的修改。urllib,selector
  • 性能优化

python2/3工具

熟悉一些兼容2/3的工具

  • six模块
  • 2to3等工具转换代码
  • future
posted on 2019-08-14 16:17  猛风中碰杯  阅读(308)  评论(0编辑  收藏  举报