zoukankan      html  css  js  c++  java
  • python学习第四天

    面向过程与面向对象的区别

    面向过程,面面俱到,各个细节都要考虑

    面向对象,只需要找到合适的助手,帮你处理问题就行

    两种解决问题的思路而已

    面向对象

    object-oriented,简称OO,基于对象(实体)的概念创建模型,模拟客观世界分析、设计和实现软件的方法

    面向对象编程

     类

    类class由三个部分构成

    类的名称:类名

    类的属性: 一组数据

    类的方法: 允许对进行操作的方法(行为)

    创建对象

    tom = Cat()

    调用对象的方法

    tom.eat()

    给对象添加属性

    tom.name = "汤姆"

    self

    多个对象,self,通过哪个对象调用方法,自动将对象的引用传过去

    __init__方法

    初始化对象,魔法方法

    __str__方法

    return打印描述信息 

    全局变量和函数、对象属性和方法的区别

    函数相当于把具有独立功能的封装起来  类 相当于把全局变量和函数又封装起来了

    两个例子:烤红薯和装家具

    class SweetPotato:
        def __init__(self):
            self.cookedString = "生的"
            self.cookedLevel = 0    
        
        def __str__(self):
            return "地瓜 状态:%s(%d)"%(self.cookedString, self.cookedLevel)
        
        def cook(self, cooked_time):
            
            self.cookedLevel += cooked_time
            if self.cookedLevel >= 0 and self.cookedLevel<3:
                self.cookedString = "生的"
            elif self.cookedLevel >= 3 and self.cookedLevel<5:
                self.cookedString = "半生不熟"
            elif self.cookedLevel >= 5 and self.cookedLevel<8:
                self.cookedString = "熟了"
            elif self.cookedLevel >= 8:
                self.cookedString = "烤糊了"
    #创建一个地瓜对象
    di_gua = SweetPotato()
    print(di_gua)
    
    #开始烤地瓜
    di_gua.cook(1)
    print(di_gua) 
    di_gua.cook(1)
    print(di_gua) 
    di_gua.cook(1)
    print(di_gua) 
    class Home:
        def __init__(self,new_area,new_info,new_addr):
            self.area = new_area
            self.info = new_info
            self.addr = new_addr
            self.left_area = new_area
            self.contain_items = []
     
        def __str__(self):
            msg = "房子的面积是:%d,可用面积是:%d,户型是:%s,地址是:%s"%(self.area,self.left_area,self.info,self.addr)
            msg += "房子已有家具包括:%s"%str(self.contain_items())
            return msg
        def add_item(self, item):
            self.left_area -= item.get_area()
            self.contain_items.append(item.get_name())
    class Bed:
        def __init__(self, new_name,new_area):
            self.name = new_name
            self.area = new_area
        def get_area(self):
            return self.area
        def get_name(self):
            return self.name
        def __str__(self):
            return "%s占用的面积是:%d"%(self.name, self.area)
    
    fangzi = Home(129,"三室一厅","北京市 朝阳区 长安街 666号")
    print(fangzi)
    
    bed1 = Bed("席梦思", 4)
    fangzi.add_item(bed1)
    print(fangzi)
    bed2 = Bed("三人床",6)
    fangzi.add_item(bed2)
    print(fangzi)
  • 相关阅读:
    二测试组织
    如何编写测试计划
    C#三种字符串拼接方法的效率对比
    CSS内容溢出时,显示省略号
    JQuery文件上传控件Uploadify文档
    LINQ to Entities 不识别方法“Boolean Like(System.String, System.String)”,因此该方法无法转换为存储表达式。
    Linux 各目录的作用
    服务器注释事项
    资料:mnist.pkl.gz数据包的下载以及数据内容解释
    RockPaperScissorsLizardSpock Python实现
  • 原文地址:https://www.cnblogs.com/wangjinliang1991/p/9898922.html
Copyright © 2011-2022 走看看