下面按照要求定义一个药品 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 = price
self.__PD = PD
self.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 > end
medicine0bj = 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
药品是否过期: 药品过期