类和对象
Posted buchizaodian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类和对象相关的知识,希望对你有一定的参考价值。
一、对象
1、多态
方法
绑定到对象特性上面的函数城为方法
鸭子类型:
2、封装
多态可以让用户对于不知道是什么类的对象进行方法调用,封装是可以不用关心对象是如果构建的而直接进行使用
继承
二、类
定义一个类
python2.0中,有旧式类和新式类的区别
新式类要用
_metaclass_=type #确定使用新式类
创建一个类
_metaclass_=type class Person: def setName(self,name): self.name=name def getName(self): return self.name def greet(self): print "Hello,world! I‘m %s." % self.name
调用
定义对象
不像C# java还需要new。
直接使用 对象名=类名()即可
关于self
self代表本类的实例
python的类方法里,至少要有一个参数self这也是和其他语言区别的地方
self不是固定的关键字,可以随便换,比如 this ..但python里正常情况下都是用self
私有方法
定义时,在方法的前面加两个下划线表示此方法只能在该类中使用。(虽然也有方法能够调用它)
三、超类(父类)
class a: class b(a):
a表示超类,b表示子类
判断是否有子类、超类的关系函数
issubclass(b,a)
如果a是b的子类,则返回true。 不是则返回false
如果想知道该类的基类,可以用 __bases__
检查一个对象是否是一个类的实例用 isinstance方法
可以看出 bb既是 b类的实例,也是a类的实例。因为 b是a的子类
判断对象属于哪个类用 __class__
四、多超类
一个子类可以继承多个父类
使用多重继承是要注意:
一个方法从多个父类继承,那么必须要注意父类的顺序,先继承的类中的方法会重写后继承的类中的方法。
比如上例 i类中有个方法add,j类中也有个方法add。那么 i类的add方法会重写j类的add方法
如果还有个e的方法和h类一样,继承了i类和j类。但是e类里也有个add方法。那么会优先调用子类的add方法
以上是关于类和对象的主要内容,如果未能解决你的问题,请参考以下文章