python 特性和方法同名_python特性小记(一)

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

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

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

二、关于重载和覆盖

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

三、语言类型

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

四、关于多态

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值