python特性小记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python特性小记相关的知识,希望对你有一定的参考价值。

一、关于构造函数和析构函数

    1、python中有构造函数和析构函数,和其他语言是一样的。如果子类需要用到父类的构造函数,则需要在子类的构造函数中显式的调用,且如果子类有自己的构造函数,必然不会自动调用父类的构造函数;但是对于没有构造函数的子类来说,则会自动继承父类的构造函数,且子类总会默认继承多个父类中的第一个父类的构造函数。备注:一般来说,子类应该继承父类的所有属性和方法,可将子类中的构造方法理解为覆盖重写了父类的构造方法。

  2、析构函数和其他语音一样,在调用del时,才会调用析构函数。应该显示调用

 

二、关于重载和覆盖

  python中没有重载的概念,不能用和类同名的多个函数依照参数个数或者参数名的不同实现重载。python中,相同名字的函数,总是会默认的覆盖掉前一个函数,这并不方便,但就严谨性来说,增加了可读性可理解性。我认为python之所以没有重载,一是因为python是动态类型的语言,既然参数只有在运行时才确定,那重载对于python应该是毫无意义的;二是python不允许缺少参数,这点也使得重载对于python毫无意义。备注:c#中可以在父类中写一个虚方法,然后在子类中使用override重载该方法,调用虚方式时,实际上会调用重写后的方法。

 

三、语言类型

    毫无疑问的是,python是动态的强类型语言,如果说静态,目前我见过的只有在列表list中是静态的。值传递传递的是值(赋予了新的内存一个值),指针传递传递的是指向内存的指针,这个很好理解。

 

四、关于多态 

  简单来说,多态就是一个类的多个表现形式或者表现状态。python不支持多态,一般用子类继承父类后重新函数,这其实又是另一个对象了。

 

以上是关于python特性小记的主要内容,如果未能解决你的问题,请参考以下文章

Python小记

python学习小记

python小记

python小记

Python小记5

Python小记4