下面按照要求定义一个药品 Medicine 类。
Medicine 类的属性如下: 药名 name 价格 price 生产日期 PD 失效日期 Exp
Medicine 类的方法如下: 获取药品名称 get_name()返回类型: str
计算保质期(失效日期和生产热情的时间间隔) get_GP()返回类型: str
计算药品是否过期? is_expire()返回类型:Bool
商品名称和生产日期只能查看不能修改。

拓展知识: datetime 模块 strptime(): 用户输入的日期和时间是字符串,要处理日期和时间,首先必须把 str 转换 为 datetime 对象。
代码:

from datetime import datetime#定义类
class Medicine(object):#类的属性def __init__(self,name,price,PD,Exp):#属性和对象进行封装self.__name = name          #__属性名为私有属性,只能查看不能修改,提高了代码的安全性self.price = priceself.__PD = PDself.Exp = Exp#获取药品名称def get_name(self):return (self.__name)#计算保质期def get_GP(self):#strptime(): 用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime对象。#strptime(),功能:按照特定时间格式将字符串转换(解析)为时间类型。# time.strftime(format, tupletime) 接收以时间元组,并返回以可读字符串表示的当地时间,格式由format决定。start = datetime.strptime(self.__PD,'%Y-%m-%d')  #将字符串转换为datetime对象end = datetime.strptime(self.Exp,'%Y-%m-%d')delta_days = end -start                           #计算保质期return delta_days.days#计算药品是否过期def is_expire(self):#功能:将时间格式化now = datetime.now()         #计算当前时间end = datetime.strptime(self.Exp, '%Y-%m-%d')return now > endmedicine0bj = Medicine('感冒胶囊',100,'2019-1-1','2019-5-5')
print("药品名称:",medicine0bj.get_name())
print("药品保质期为: ",medicine0bj.get_GP())
print("药品是否过期:","药品过期" if medicine0bj.is_expire() else "药品未过期")
#print(datetime.now())
#print(type(datetime.now()))
# ending = datetime.strftime(datetime.now(),"%Y-%m-%d")
# print(ending)
#print(time.strftime("%Y-%m-%d",time.localtime()))

运行结果:

药品名称: 感冒胶囊
药品保质期为:  124
药品是否过期: 药品过期

面向对象编程——药品信息类的封装相关推荐

  1. c语言面向对象编程中的类_C ++中的面向对象编程

    c语言面向对象编程中的类 Object oriented programming, OOP for short, aims to implement real world entities like ...

  2. Java面向对象编程篇1——类与对象

    Java面向对象编程篇1--类与对象 1.面向过程 1.1.概念 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 1.2.优缺点 优点:性 ...

  3. 【JAVA SE】第六章 面向对象、对象和类以及封装

    第六章 面向对象.对象和类以及封装 文章目录 第六章 面向对象.对象和类以及封装 一.面向对象 1.概念 2.面向对象的三大特征 二.对象和类 1.基本概念 2.Java中的对象 3.Java 中的类 ...

  4. 实验四:面向对象编程实验(2)—封装、继承和包

    实验四 实验项目:面向对象编程实验(2)-封装.继承和包 实验时间:2019.4.15 实验目的 掌握继承.包.与类封装性的概念与用法 学习编写具有包的面向对象的应用程序 掌握Java封装性中访问控制 ...

  5. 【面向对象编程】(3) 类之间的交互,依赖关系,关联关系

    各位同学好,今天和大家分享一下面向对象编程中,类之间的交互,类之间的依赖关系和关联关系.有不明白的可见前一章节:https://blog.csdn.net/dgvv4/article/details/ ...

  6. (转)Javascript 面向对象编程(一):封装

    它们都是非常优秀的Javascript读物,推荐阅读. 笔记分成三部分.今天的第一部分是讨论"封装"(Encapsulation),后面的第二部分和第三部分讨论"继承&q ...

  7. System Verilog面向对象编程(OPP)基础——类(class)的基本使用

    该文主要是笔者梳理绿皮书对应章节的内容 System Verilog面向对象编程OPP基础--类(class)的基本使用 面向对象编程 概述 考虑名词而非动词 编写第一个类class OOP术语 创建 ...

  8. Javascript 面向对象编程(一):封装 ——转自阮一峰博客

    Javascript 面向对象编程(一):封装 作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的 ...

  9. C语言面向对象编程的类是指,c语言面向对象编程中的类_C ++中的面向对象编程...

    c语言面向对象编程中的类 Object Oriented programming is a programming style that is associated with the concept ...

最新文章

  1. swift_038(Swift之guard关键字(守护))
  2. Hibernate学习之一对多关联
  3. CoInitialize和CoInitializeEx
  4. Android开发中Edittext设置密码显示隐藏的多种方法
  5. 使用Lucene索引和检索POI数据
  6. Java基础题笔记(数组)4
  7. Could not find artifact org.olap4j:olap4j:pom:0.9.7.309-JS-3 in alimaven
  8. 学习之法 —— 如何阅读代码、如何编写代码
  9. linux mysql 5.7.13 安装_mysql 5.7.13 安装配置方法图文教程(linux)
  10. zsacm20120226省赛前个人赛第1场(结题报告)
  11. 【Java Saves!】Session 2:我的意图
  12. 俺博士三年的一点体会
  13. 宝塔php伪静态规则,宝塔BT面板伪静态规则大全汇总
  14. 超简洁WIN10桌面分享
  15. IPhone手机无法连接蓝牙
  16. Linux系统安装--LInix系统随笔(二)
  17. MSDC 4.3 接口规范(13)
  18. 华强北airpods三代连接安卓手机没声音_安卓手机体验华强北的顶配AirPods,“翻车”还是真香?...
  19. photoshop使用笔记-制作古代印章
  20. 网络营销理论模型_15种流行的在线营销促销形式 网络营销专业项目

热门文章

  1. 怎么把视频倒放,用最简单的方法实现最佳效果
  2. 计算机应用基础西南大学答案2015,西南大学2013级《计算机应用基础》论述题答案(全).doc...
  3. Java---Map双列集合
  4. 求一到一百的总偶数奇数总数和的C语言程序,C语言程序求1—100之间的奇数和和偶数和...
  5. iphone x性能测试软件,iPhoneX跑分性能评测 iPhoneX跑分是什么水平
  6. airpods升系统_如何更新 AirPods / AirPods … - Apple 社区
  7. 我的世界java版红石电梯_我的世界手机版红石电梯 0.14无活塞红石电梯
  8. banner图,常用背景样式
  9. nvm的下载、安装、卸载踩坑
  10. 第7周 CSV格式清洗与转换