Python之面向对象
Posted 瑶池里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之面向对象相关的知识,希望对你有一定的参考价值。
面向对象:
~Python是一门面向对象的语言。类(class)是一种抽象的模板,实例(instance)是根据类创建的具体对象,每个对象都有相同的方法,只不过传入的数据可能不一样。
~类里面一般包含属性和方法,你可以简单的理解为属性为静态的,方法为动态的。比如class person:这个类手、脚、眼睛这些为属性,而走路、看书等为方法。
~由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__
方法,在创建实例的时候,就把各~种属性绑上去
~而__init__
方法的第一个参数永远是self
,表示创建的实例本身,因此,在__init__
方法内部,就可以把各种属性绑定到self
,因为self
就指向创建的实例本身。
•创建
创建一个person的类:
1 class person: 2 def __init__(self,name,weight,hight,country): 3 self.name=name 4 self.weight=weight 5 self.hight=hight 6 self.country=country
传入一个实例
1 a=person("y",179,180,"china")
1 a.country#获取person中country这个属性
china
创建一个默认属性
1 class person: 2 country="china"#shared by all instance 3 def __init__(self,name,weight,hight): 4 self.name=name 5 self.weight=weight 6 self.hight=hight
1 a=person("y",179,180)
1 a.country
‘china‘
亦或写成
1 class person: 2 def __init__(self,name,weight,hight): 3 self.name=name 4 self.weight=weight 5 self.hight=hight 6 self.country="china"
创建一个既有属性又有方法的类
1 class person: 2 def __init__(self,name,weight,hight): 3 self.name=name 4 self.weight=weight 5 self.hight=hight 6 self.country="china" 7 def judge_weight(self,weight): 8 if weight>160: 9 print("超重") 10 elif weight>120: 11 print("标准") 12 else: 13 print("偏瘦")
1 a=person("y",179,180)
1 a.judge_weight(110)
偏瘦
•继承
一个类继承另一个类时,它将自动获得另一个类的属性和方法;原有的类称为父类,而新的类称为子类。
1 class huge(person): 2 pass#完全继承
1 a=huge("y",179,180) 2 a.name
‘y‘
多态
子类继承了其父类的所有属性和方法,同时也可以定义自己的属性和方法。
用super().__init__去初始化父类super()将返回当前类继承的父类,__init__初始化方法。
1 class huge(person): 2 def __init__(self,name,weight,hight,skill):#写出子类的所有属性 3 super().__init__(name,weight,hight)#子类所继承的父类属性 4 self.skill=skill#子类自己的属性 5 pass
1 a=huge("y",179,180,"fly") 2 a.skill
‘fly‘
方法重载:当父类的方法不符合子类的需求时,可以重新定义一个方法,即它与重写的父类方法同名,即覆盖了父类的方法。
1 class huge(person): 2 def __init__(self,name,weight,hight,skill):#写出子类的所有属性 3 super().__init__(name,weight,hight)#子类所继承的父类属性 4 self.skill=skill#子类自己的属性 5 def judge_weight(self,hight): 6 if hight>180: 7 print("高") 8 elif hight>170: 9 print("中") 10 else: 11 print("矮") 12
1 a.judge_weight(170)
矮
以上是关于Python之面向对象的主要内容,如果未能解决你的问题,请参考以下文章