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)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值