【每天几分钟,从零入门python编程的世界!】
这节课我们学习如何在class中自己定义一个函数。
这是之前我们定义的User类,现在我们在这个类中自己定义一个函数,取名为age。我们想让这个age函数实现这样的功能:根据用户输入的birthday计算出这个用户的年龄是多大。用户的年龄我们可以在进行数据分析、精准营销等方面的工作时用的到。
现在我们来定义这个计算用户年龄的age函数,我们知道我们定义的类在实例化时传入的参数是birthday,那么我们可以用当前的日期减去用户的出生日期,这样就能计算出用户的年龄。
我们知道Python就是一个胶水语言,我们需要做什么的时候,有很多功能Python已经帮我们做好了。比如我们现在要根据用户的生日计算用户的年龄,即需要进行时间处理,我们就可以在网上搜索Python时间处理方面的第三方库,这里我们介绍一个Python的第三方库,叫做datetime,datetime是一个专门进行时间处理的第三方库。大家有兴趣可以在datetime的官网去了解下它,不了解也没关系,在这里大家也能学会它基本的知识。
接下来就是在Python中引入datetime这个第三方库,Python就是这样,我们需要什么,我们就可以引入什么。然后我们根据前面说的计算用户年龄的逻辑(我们用datetime中的today减去birthday,然后把结果换算成年就可以了)去定义age这个函数。
具体代码如下:
age函数逻辑说明:
我们已经知道用户的生日,那么计算用户的年龄,就计算出用户的生日到今天总共识多少天,然后用这个总天数除以365天,就表示这个总天数是多少年,即用户的年龄是多大。
所以逻辑顺序应该是:
①我们用how_old_in_years表示用户年龄,要计算用户年龄,就要知道用户出生日到“今天”的总天数,我们用how_old_in_days表示,用户年龄就等于how_old_in_days/365。
②获取用户出生日到“今天”的天数。用(today-birth_data).days计算,因为today= datetime.date(2019,6,7),这是一个日期对象,那么birth_data也是一个日期对象,这两个日期对象之差还是日期对象,datetime.date这个日期对象的属性有year、month、day,我们获取这个对象的days属性,就能获取到总共的天数。
③获取birth_data对象。可以用datetime.date(yaers,months,days)来指定。其中的years、months、days我们可以从User类实例化时传入的birthday参数去获取。
④获取years、months、days的值。self.birthday获取到birthday,birthday是一个字符串格式的值,我们对这个字符串进行切片,比如我们实例化类时传入的参数19560709,这个传入的参数就是birthday的实际的值,self.birthday[0:4]就是字符串“19560709”从索引0到4的值1956,就是年份year,self.birthday[4:6]就是字符串“19560709”从索引4到6的值07,就是月份month,self.birthday[6:8]就是字符串“19560709”从索引0到4的值09,就是日期day。
关于datetime这个库的相关用法网上有很多资料,大家可以搜索查看,就不一一详细介绍了,详细知识点和例子比较多,大家自己去了解下,我在这里罗列出来也没必要。我们主要学习Python核心知识,以及引导大家如何去学习Python,至于实际当中需要什么库以及知识点,我们自己去查找了解就好,Python的各种库和功能是非常非常完善的,也非常多,只要具备Python核心知识,看这些库的文档都是没什么障碍的,所以没必要、而且也不可能面面俱到介绍的太详细,再详细也不可能有文档那么详细。
温馨提示:
这节我们主要是学习如何在类中自定义函数,对datetime的介绍不是重点,所以只是告诉大家有这样的一个库,有兴趣或者是要用到的时候,大家可以自己去网上搜索,了解相关知识。
关于时间处理,Python中有一个time库,这个库是操作系统层面的,这个库所能表述的时间范围在1970年-2038年之间,如果你要处理超出这个范围的时间,time这个库就不行了,所以我们用datetime这个库,这个库一般情况下都能解决大部分问题。
我是时问新,欢迎关注我。跟我一起从零开始学习Python,每天花一点时间,开启python编程新世界的大门,领略新的风光,让人生多一种可能!