zoukankan      html  css  js  c++  java
  • day_4_27 py

      1 '''
      2 2018-4-27 19:57:29
      3 其实这些都是讲的类和对象的
      4 
      5 self(在定义方法的时候默认的参数)就相当于java里面的this关键字,  this.name=name
      6 
      7 class 类名: #类命名需要用大驼峰
      8     属性
      9     方法  (函数定义在类的里面叫方法,定义方法需要self )
     10     def xxx(self):
     11         pass
     12 '''
     13 
     14 # demo
     15 # class Cat:
     16 #     # 初始化对象 (完成初始化功能)
     17 #     def __init__(self,new_name,new_age):
     18 #         self.name = new_name
     19 #         self.age = new_age
     20 #         print("================")
     21 #     #     用于获取对象的信息
     22 #     def __str__(self):
     23 #         return "$s的年龄是:%d"%(self.name,self.age)
     24 #     # 方法
     25 #     def eat(self):
     26 #         print("猫在吃鱼.....")
     27 #     def drink(self):
     28 #         print("猫正在喝可乐;//")
     29 #     def introduce(self):
     30 #         print("%s的年龄是:%d"%(self.name,self.age))
     31 #
     32 # # 创建一个对象
     33 # tom = Cat("汤姆",40)
     34 # lanmao = Cat("蓝猫",10)
     35 # # 调用tom指向的对象中的 方法
     36 # print(tom)
     37 # print(lanmao)
     38 
     39 #定义一个Home类  把一个对象添加到另外一个对象的属性里面去
     40 class Home:
     41 
     42     def __init__(self, area):
     43         self.area = area #房间剩余的可用面积
     44         #self.light = 'on' #灯默认是亮的
     45         self.containsItem = []
     46 
     47     def __str__(self):
     48         msg = "当前房间可用面积为:" + str(self.area)
     49         if len(self.containsItem) > 0:
     50             msg = msg + " 容纳的物品有: "
     51             for temp in self.containsItem:
     52                 msg = msg + temp.getName() + ", "
     53             msg = msg.strip(", ")
     54         return msg
     55 
     56     #容纳物品
     57     def accommodateItem(self,item):
     58         #如果可用面积大于物品的占用面积
     59         needArea = item.getUsedArea()
     60         if self.area > needArea:
     61             self.containsItem.append(item)
     62             self.area -= needArea
     63             print("ok:已经存放到房间中")
     64         else:
     65             print("err:房间可用面积为:%d,但是当前要存放的物品需要的面积为%d"%(self.area, needArea))
     66 
     67 
     68 # 定义bed类
     69 class Bed:
     70 
     71     def __init__(self,area,name = ''):
     72         self.name = name
     73         self.area = area
     74 
     75     def __str__(self):
     76         msg = '床的面积为:' + str(self.area)
     77         return msg
     78 
     79     #获取床的占用面积
     80     def getUsedArea(self):
     81         return self.area
     82 
     83     def getName(self):
     84         return self.name
     85 
     86 
     87 #创建一个新家对象
     88 newHome = Home(100)#100平米
     89 print(newHome)
     90 
     91 #创建一个床对象
     92 newBed = Bed(20)
     93 print(newBed)
     94 
     95 #把床安放到家里
     96 newHome.accommodateItem(newBed)
     97 print(newHome)
     98 
     99 #创建一个床对象
    100 newBed2 = Bed(30,'席梦思')
    101 print(newBed2)
    102 
    103 #把床安放到家里
    104 newHome.accommodateItem(newBed2)
    105 print(newHome)
    106 
    107 
    108 
    109 print("|=========================")
    110 
    111 # 烤地瓜
    112 class SweetPotato :
    113     def __init__(self):
    114         self.cookedString ="生的"
    115         self.cookedLevel = 0
    116         self.codiments = [] #创建列表可以存储东西
    117 
    118     def __str__(self):
    119         return "地瓜 状态:%s(%d,添加的佐料有:%s)"%(self.cookedString,self.cookedLevel,str(self.codiments))
    120     def cook(self,cooked_time):
    121         self.cookedLevel += cooked_time
    122         if  self.cookedLevel >=0 and self.cookedLevel<3:
    123             self.cookedString ="生的"
    124         elif self.cookedLevel >=3 and self.cookedLevel<5:
    125             self.cookedString ="半生不熟的"
    126         elif self.cookedLevel >=5 and self.cookedLevel<8:
    127             self.cookedString ="熟了"
    128         elif self.cookedLevel>8:
    129             self.cookedString = "烤糊了"
    130 
    131     def ddCondiments(self,item):
    132         # 添加佐料
    133         self.codiments.append(item)
    134 #创建了一个地瓜对象
    135 di_gua = SweetPotato()
    136 print(di_gua)
    137 # 开始烤地瓜   找到当前对象属性,使其改变属性
    138 di_gua.cook(1)
    139 print(di_gua)
    140 di_gua.cook(1)
    141 print(di_gua)
    142 di_gua.cook(1)
    143 print(di_gua)
    144 di_gua.ddCondiments("大蒜")
    145 di_gua.cook(1)
    146 print(di_gua)
    147 di_gua.cook(1)
    148 print(di_gua)

  • 相关阅读:
    我的vim开发环境搭建:C/C++/Go,持续更新中
    MFC的组合框(ComboBox)控件切换下拉样式
    回顾下杂乱的10月
    C++将整型数据转换成大端或小端存储顺序
    C/C++动态分配连续空间,下标越界导致的free():invalid next size问题
    O(n)空间复杂度,打印杨辉三角形的前n行
    C指针笔试题,蛋疼的多重指针运算,谭浩强的阴影
    2017滴滴出行笔试题:异或和为0的最大区间个数
    manjaro安装
    关于top命令
  • 原文地址:https://www.cnblogs.com/zhen1996/p/8964293.html
Copyright © 2011-2022 走看看