互联网科技

Python oop(2)

2017-05-27  本文已影响21人  PythonMaO

1.1应用:存放家具

对象之间的传递

1.1保护对象的属性

如果有一个对象,当需要对其进行修改属性时,有2种方法

·对象名.属性名=数据---->直接修改

·对象名.方法名() ---->间接修改

为了更好的保存属性安全,即不能随意修改,一般的处理方式为

·将属性定义为私有属性

·添加一个可以调用的方法,供调用

总结

·Python中没有像C++中public和private这些关键字来区别公有属性和私有属性

·它是以属性命名方式来区分,如果在属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。

1.1__del__()方法

创建对象后,python解释器默认调用__init__()方法;

当删除一个对象时,python解释器也会默认调用一个方法,这个方法为__del__()方法

1.1继承介绍以及单继承

将共性的内容放在父类中,子类只需要关注自己特有的内容

在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承自狗,如下如所示:

定义一个父类Cat,定义一个子类BoSiMao,继承父类Cat 运行结果

说明:

·虽然子类没有定义__init__方法,但是父类有,所以在子类继承父类的时候这个方法就被继承了,所以只要创建Bosi的对象,就默认执行了那个继承过来的__init__方法

总结

·子类在继承的时候,在定义类时,小括号()中为父类的名字

·父类的属性、方法,会被继承给子类

总结

·私有的属性,不能通过对象直接访问,但是可以通过方法访问

·私有的方法,不能通过对象直接访问

·私有的属性、方法,不会被子类继承,也不能被访问

·一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用

多继承

继承,即子类有多个父类,并且具有它们的特征

子类F继承多个父类

在父类D和C中,有同一方法D。那么通过子类F调用该方法。调用的是父类D的'D'方法

在父类B和C中,有同一方法hehe。那么通过子类F调用该方法。调用到父类B中的hehe方法。

调用顺序是从左到右

继承关系

1.1重写父类方法与调用父类方法

1.1.1重写父类方法

所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法

调用父类的方法

调用父类被重写的用,两种方法都可以

1.1.1类属性

1.1.1实例属性(对象属性)

1.1.1通过实例(对象)去修改类属性



总结

·如果需要在类外修改类属性,必须通过类对象去引用然后进行修改。如果通过实例对象去引用,会产生一个同名的实例属性,这种方式修改的是实例属性,不会影响到类属性,并且之后如果通过实例对象去引用该名称的属性,实例属性会强制屏蔽掉类属性,即引用的是实例属性,除非删除了该实例属性。

上一篇下一篇

猜你喜欢

热点阅读