分类 Python·语法 下的文章

ORM模型


前言

ORM是三个单词首字母组合而成,包含了Object(对象-类),Relations(关系),Mapping(映射)。解释过字面意思,但ORM的概念仍然模糊。私以为要理解一个事物,最好的法子是搞明白它出现是为了解决什么问题。

然而,ORM是否应该存在仍被许多程序员争论着。我所实习的公司,项目组负责封装数据层抽象出接口的程序员也为此跟leader激烈讨论过。我同他持相同观点,即:过于复杂的sql操作不应该让ORM代为实现,原生sql会让代码简单,目的明确。离开复杂的“层次”,代码也易维护。


Python中的切片


前言

一直想把Python切片的知识总结,但拖延至今方才摁键。起因是室友接受了导师给的课题,机器学习相关,之前他一直实习Java,现在要学Python了。有一天他发信息问我关于切片的问题,我竟不能十分肯定的回答。惭愧!但不得不说,Python切片中的Tips是我之前不曾见过,也自然不曾使用的,今日就着外面世界的烟火炮竹,把眼界大开。


Python中的abc模块


前言

《抽象基类(ABC)》中,基于C++讲述抽象基类。尽管Python设计上以鸭子类型为主,但仍有抽象基类(ABC)的一席之地,它被封装在了abc模块中供程序员使用。

abc模块有以下两个主要功能:

  • 某种情况下,判定某个对象的类型,如:isinstance(a, Sized)
  • 强制子类必须实现某些方法,即ABC类的派生类


Python传参陷阱


前言

简单的传参背后却藏匿着粗心就会完蛋的大坑。

默认传参

设计一个Python函数时,免不了用到默认传参;默认传参时,又免不了用到列表类型。如下面这样:

def add_elem_to_list(something, list_=[]):
    for i in something:
        list_.append(i)