python---面向过程,面向对象

面向对象和面向过程

面向过程:核心过程二字,过程即解决问题的步骤,就是先干什么后干什么

    基于该思想写程序就好比在这是一条流水线,是一种机械式的思维方式

    优点:复杂的过程流程化

    缺点:扩展性差

 

面向对象:核心是对象二字,对象指特征与技能的结合体

    基于该思想编写程序就好比在创造一个世界,世界是由一个个对象组成,是一种‘上帝式’的思维方式

    优点:可扩展性强

    缺点:编程复杂度高,极容易出现过度设计的问题

 

    对象是特征与技能的结合体,类就是一系列对象相似的特征与技能的结合体

    在现实生活中:一定是先有一个个具体的对象,后总结出类

    在程序中:一定是先定义类,后产生对象

class Students:

    #初始化

    def __init__(self,name,phone):  #定义对象属性

        self.name = name

        self.phone = phone

   def run(self):                 #定义对象技能

        print('running......')

 

stu1 = Students('吉喆', 110)        #实例化对象

print(stu1.name)

print(stu1.phone)

stu1.run()

stu2 = Students('李凯', 120)

print(stu2.name)

print(stu2.phone)

stu2.run()

 

面向对象有三大特性:

    1.封装

       1.封装是面相对性一大特点

  2.面向对象编程的第一步--将属性和方法封装到一个抽象的类当中

  3.外界使用类创建对象,然后让对象调用方法

  4.对象方法的细节都被封装在类的内部

 

class Person:                                                              #定义类

    def __init__(self,name,weight):                               #定义类的属性

        self.name = name

        self.weight = weight

    def run(self):                                                  #这个类的技能

        self.weight -= 0.5                                      #使用技能的效果

    def eat(self):                                                  #类的技能

        self.weight += 1

    def __str__(self):                                                             #返回的数据

        return '%s的体重是:%s' % (self.name, self.weight)

 

xiaoming = Person('小明',75)       # 实例化 类

xiaoming.eat()                              #这个类使用的技能

xiaoming.eat()                              #这个类使用的技能

xiaoming.run()                              #这个类使用的技能

print(xiaoming)                            #输出这个实例化的分类

 

class Items():

    def __init__(self,name,area):

        self.name = name

        self.area = area

class House():

    def __init__(self,house_type,total_area):

        self.house_type = house_type

        self.total_area = total_area

        self.free_area = total_area

        self.items = []

    def add_item(self,item):

        if self.free_area >= item.area:

            self.free_area -= item.area

            self.items.append(item.name)

        else:

            print('面积太大,放不进去')

    def __str__(self):

        return '户型:%s|总面积:%s|剩余面积:%s|家具名称列表:%s|' % (self.house_type, self.total_area,self.free_area,self.items)

 

#实例化家具

bed = Items('席梦思',41)

chest = Items('衣柜',2)

table = Items('餐桌',1.5)

#实例化房子

house = House('地下室',20)

#添加家具

house.add_item(bed)

house.add_item(chest)

house.add_item(table)

print(house)

 

你可能感兴趣的:(python基础)