Python之面向对象
2020-12-18 16:36
标签:标准 获得 16px 需求 else 创建 作用 self instance ~Python是一门面向对象的语言。类(class)是一种抽象的模板,实例(instance)是根据类创建的具体对象,每个对象都有相同的方法,只不过传入的数据可能不一样。 ~类里面一般包含属性和方法,你可以简单的理解为属性为静态的,方法为动态的。比如class person:这个类手、脚、眼睛这些为属性,而走路、看书等为方法。 ~由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的 •创建 创建一个person的类: 传入一个实例 亦或写成 创建一个既有属性又有方法的类 •继承 一个类继承另一个类时,它将自动获得另一个类的属性和方法;原有的类称为父类,而新的类称为子类。 多态 子类继承了其父类的所有属性和方法,同时也可以定义自己的属性和方法。 用super().__init__去初始化父类super()将返回当前类继承的父类,__init__初始化方法。 Python之面向对象 标签:标准 获得 16px 需求 else 创建 作用 self instance 原文地址:https://www.cnblogs.com/ye20190812/p/13372838.html面向对象:
__init__
方法,在创建实例的时候,就把各~种属性绑上去~而__init__
方法的第一个参数永远是self
,表示创建的实例本身,因此,在__init__
方法内部,就可以把各种属性绑定到self
,因为self
就指向创建的实例本身。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‘
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)
矮