'''
2018-4-27 19:57:29
其实这些都是讲的类和对象的 self(在定义方法的时候默认的参数)就相当于java里面的this关键字, this.name=name class 类名: #类命名需要用大驼峰
属性
方法 (函数定义在类的里面叫方法,定义方法需要self )
def xxx(self):
pass
''' # demo
# class Cat:
# # 初始化对象 (完成初始化功能)
# def __init__(self,new_name,new_age):
# self.name = new_name
# self.age = new_age
# print("================")
# # 用于获取对象的信息
# def __str__(self):
# return "$s的年龄是:%d"%(self.name,self.age)
# # 方法
# def eat(self):
# print("猫在吃鱼.....")
# def drink(self):
# print("猫正在喝可乐;//")
# def introduce(self):
# print("%s的年龄是:%d"%(self.name,self.age))
#
# # 创建一个对象
# tom = Cat("汤姆",40)
# lanmao = Cat("蓝猫",10)
# # 调用tom指向的对象中的 方法
# print(tom)
# print(lanmao) #定义一个Home类 把一个对象添加到另外一个对象的属性里面去
class Home: def __init__(self, area):
self.area = area #房间剩余的可用面积
#self.light = 'on' #灯默认是亮的
self.containsItem = [] def __str__(self):
msg = "当前房间可用面积为:" + str(self.area)
if len(self.containsItem) > 0:
msg = msg + " 容纳的物品有: "
for temp in self.containsItem:
msg = msg + temp.getName() + ", "
msg = msg.strip(", ")
return msg #容纳物品
def accommodateItem(self,item):
#如果可用面积大于物品的占用面积
needArea = item.getUsedArea()
if self.area > needArea:
self.containsItem.append(item)
self.area -= needArea
print("ok:已经存放到房间中")
else:
print("err:房间可用面积为:%d,但是当前要存放的物品需要的面积为%d"%(self.area, needArea)) # 定义bed类
class Bed: def __init__(self,area,name = '床'):
self.name = name
self.area = area def __str__(self):
msg = '床的面积为:' + str(self.area)
return msg #获取床的占用面积
def getUsedArea(self):
return self.area def getName(self):
return self.name #创建一个新家对象
newHome = Home(100)#100平米
print(newHome) #创建一个床对象
newBed = Bed(20)
print(newBed) #把床安放到家里
newHome.accommodateItem(newBed)
print(newHome) #创建一个床对象
newBed2 = Bed(30,'席梦思')
print(newBed2) #把床安放到家里
newHome.accommodateItem(newBed2)
print(newHome) print("|=========================") # 烤地瓜
class SweetPotato :
def __init__(self):
self.cookedString ="生的"
self.cookedLevel = 0
self.codiments = [] #创建列表可以存储东西 def __str__(self):
return "地瓜 状态:%s(%d,添加的佐料有:%s)"%(self.cookedString,self.cookedLevel,str(self.codiments))
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 = "烤糊了" def ddCondiments(self,item):
# 添加佐料
self.codiments.append(item)
#创建了一个地瓜对象
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)
di_gua.ddCondiments("大蒜")
di_gua.cook(1)
print(di_gua)
di_gua.cook(1)
print(di_gua)

day_4_27 py的更多相关文章

  1. python调用py中rar的路径问题。

    1.python调用py,在py中的os.getcwd()获取的不是py的路径,可以通过os.path.split(os.path.realpath(__file__))[0]来获取py的路径. 2. ...

  2. Python导入其他文件中的.py文件 即模块

    import sys sys.path.append("路径") import .py文件

  3. import renumber.py in pymol

    cp renumber.py /usr/local/lib/python2.7/dist-packages/pymol import renumber or run /path/to/renumber ...

  4. python gettitle.py

    #!/usr/bin/env python # coding=utf-8 import threading import requests import Queue import sys import ...

  5. 解决 odoo.py: error: option --addons-path: The addons-path 'local-addons/' does not seem to a be a valid Addons Directory!

    情况说明 odoo源文件路径-/odoo-dev/odoo/: 我的模块插件路径 ~/odoo-dev/local-addons/my-module 在my-module中创建了__init__.py ...

  6. caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例

    caffe机器学习环境搭建及python接口编译参见我的上一篇博客:机器学习caffe环境搭建--redhat7.1和caffe的python接口编译 1.运行caffe图片分类器python接口 还 ...

  7. 【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优

    libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windo ...

  8. MySqlNDB使用自带的ndb_setup.py安装集群

    在用Mysql做集群时,使用Mysql的NDB版本更易于集群的扩展,稳定和数据的实时性. 我们可以使用Mysql自带的工具进行集群安装与管理:ndb_setup.py.位于Mysql的安装目录bin下 ...

  9. 将做好的py文件打包成模块,供别人安装调用

    现在要将写完的3个py文件,打包. 步骤: 1.新建一个文件夹setup(名字随便取),在setup文件夹下,再新建一个文件夹financeapi. 2.将上面4个py文件拷贝至financeapi文 ...

随机推荐

  1. C#中流的读写器BinaryReader、BinaryWriter,StreamReader、StreamWriter详解【转】

    https://blog.csdn.net/ymnl_gsh/article/details/80723050 C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操 ...

  2. Spring AOP获取拦截方法的参数名称跟参数值

    注意:这种方式需要JDK1.8版本支持 开始:http://www.cnblogs.com/wing7319/p/9592184.html 1.aop配置: <aop:aspectj-autop ...

  3. 树莓派3中没有/dev/video0的解决方法(使用OpenCV编程调用树莓派摄像头的方法)

    一.问题 使用下列方法调用OpenCV编程调用树莓派摄像头时总是失败,提示调用Grabber的start()时失败. import org.bytedeco.javacpp.opencv_core; ...

  4. ubuntu 安装SSH并设置免密码登录

    cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost ssh-keygen -t rsa # 会有提示,都按回车就可以 cat ./id_rsa.pub >> . ...

  5. mysql 编译安装 window篇

    传送门 # mysql下载地址 https://www.mysql.com/downloads/ # 找到MySQL Community Edition (GPL) https://dev.mysql ...

  6. R8500 MPv2 版本 刷 Kong编译的 ddwrt 后,使用Entware-ng 安装opkg安装第三方软件

    先说R8500吧. 由于Netgear网件的问题导致R8500在去年双11前夕出现了全球范围的Boot Loop的问题,现象为新设备开机一段时间后,路由器进入不停重启的状态,电源灯桔黄色.在和网件工程 ...

  7. Git教程学习(一)

    教程来自: Git教程(廖雪峰的官方网站) 学习Git的基本内容,对教程内容进行理解并脱水 1. Git简介 2. 安装Git 1. ubuntu上安装Git $ sudo apt-get insta ...

  8. Disruptor学习笔记

    前言 以前一直听说有Disruptor这个东西,都说性能很强大,所以这几天自己也看了一下. 下面是自己的学习笔记,另外推荐几篇自己看到写的比较好的博客: Disruptor——一种可替代有界队列完成并 ...

  9. 每日英语:How To Survive The Windows XPiration Date

    The default background for Microsoft's Windows XP operating system -- a perfect blue sky full of cot ...

  10. el表达式字符串与变量拼接

    ${empty navigationMenu.pageid? '':'&mpage='.concat(navigationMenu.pageid)}