Python 开发 FAQ

Q: @staticmethod和@classmethod 有什么区别?

A: @staticmethod不需要表示自身对象的self和自身类的cls参数,就跟使用函数一样。@classmethod也不需要self参数,但第一个参数需要是表示自身类的cls参数。

Q: Python的特点?

A: 主要特点有

  • 解析型语言.
  • 动态类型.
  • 没有类成员没有访问标识
  • 函数是一等公民. 很便于FP编程
  • 语法噪声小. 基本是目前所有语言中最接近伪代码的.

Q: Python 的缺点?

A:解析型语言, 原生代码运行速度慢. 动态类型, 没有类成员访问控制, 在开发和维护上会有问题.

Q: Python是如何进行内存管理的?

A: Python内部使用引用计数, 引用计数为0的对象会GC. 对于相互引用迭代对象, 解析器会定时运行一个循环解析器, 用来回收不可访问的对象. GC的内存还到内存池, 而不是操作系统. <256Byte的对象使用pymalloc, 大对象由操作系统的 malloc 进行内存分配. Python对象有私用内存池, 相互不通.

KAMI
KAMI
数据挖掘研究员,专注分享数据领域的技术和业务,以及逻辑、思维和方法论

发表回复

文章结构
相关文章