python编程普通及类和静态方法示例详解
前言
本文主要讲述了python类中的三类常用方法,普通方法、类方法和静态方法。
本文主要参考了https://youtu.be/rq8cL2XMM5M,强烈推荐一看这个系列的所有视频。
运行环境
import sys sys.version
结果为
'3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]'
普通方法
我们这里定义一个叫做学生的类,并在其中定义了一个普通方法total_score()用于获取某个实例的学生的总分。
class Student(object): num_of_stu = 0 #学生人数 def __init__(self, name, age, math, Chinese): self.name = name #学生姓名 self.age = age #学生年龄 self.math = math #数学成绩 self.Chinese = Chinese #语文成绩 Student.num_of_stu += 1 #每实例化一个学生,人数加1,相当于静态变量 def __del__(self): Student.num_of_stu -= 1 #每删除一个实例,人数减1 #普通方法,用于计算学生的总分 def total_score(self): return self.math + self.Chinese
然后我们生成几个实例试一下看
print (Student.num_of_stu) stu1 = Student('Bob', 11, 51, 33) print (stu1.total_score()) stu2 = Student('Peco', 12, 98, 79) print (stu2.total_score()) print (Student.num_of_stu) del stu1 print (Student.num_of_stu)
结果为
0
84
177
2
1
类方法
现在假设我们想用一个字符串来实现实现一个实例的实例化,那么我们可以加上一个类方法from_string
class Student(object): num_of_stu = 0 #学生人数 def __init__(self, name, age, math, Chinese): self.name = name #学生姓名 self.age = age #学生年龄 self.math = math #数学成绩 self.Chinese = Chinese #语文成绩 Student.num_of_stu += 1 #每实例化一个学生,人数加1,相当于静态变量 def __del__(self): Student.num_of_stu -= 1 #每删除一个实例,人数减1 #普通方法,用于计算学生的总分 def total_score(self): return self.math + self.Chinese #类方法,用于用字符串生成实例 @classmethod def from_string(cls, stu_str): name, age, math, Chinese = stu_str.split('-') return cls(name, int(age), float(math), float(Chinese))
我们来试一下看
stu_str = "Bob-12-50-34" stu1 = Student.from_string(stu_str) print (stu1.name, stu1.total_score())
结果是
Bob 84.0
静态方法
现在又假设我们需要类中有一个方法可以帮我们看看是不是上课日,那么我们就需要静态方法了
class Student(object): num_of_stu = 0 #学生人数 def __init__(self, name, age, math, Chinese): self.name = name #学生姓名 self.age = age #学生年龄 self.math = math #数学成绩 self.Chinese = Chinese #语文成绩 Student.num_of_stu += 1 #每实例化一个学生,人数加1,相当于静态变量 def __del__(self): Student.num_of_stu -= 1 #每删除一个实例,人数减1 #普通方法,用于计算学生的总分 def total_score(self): return self.math + self.Chinese #类方法,用于用字符串生成实例 @classmethod def from_string(cls, stu_str): name, age, math, Chinese = stu_str.split('-') return cls(name, int(age), float(math), float(Chinese)) #静态方法,用于判断要不要上学 @staticmethod def is_school_day(day): if day.weekday() == 5 or day.weekday() == 6: return False return True
我们来试下看
import datetime my_date1 = datetime.date(2017, 9, 15) my_date2 = datetime.date(2017, 9, 16) print (Student.is_school_day(my_date1)) print (Student.is_school_day(my_date2))
结果是
True
False
以上就是python编程普通及类和静态方法示例详解的详细内容,更多关于python方法的资料请关注猪先飞其它相关文章!
相关文章
- 这篇文章主要介绍了python-opencv-画外接矩形框的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-04
- 以前我们开发大型项目时都会用到svn来同步,因为开发产品的人过多,所以我们会利用软件来管理,今天发有一居然可以利用php来管理svn哦,好了看看吧。 代码如下 ...2016-11-25
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 2022虎年新年即将来临,小编为大家带来了一个利用Python编写的虎年烟花特效,堪称全网最绚烂,文中的示例代码简洁易懂,感兴趣的同学可以动手试一试...2022-02-14
- 在本篇文章里小编给大家分享的是一篇关于python中numpy.empty()函数实例讲解内容,对此有兴趣的朋友们可以学习下。...2021-02-06
python-for x in range的用法(注意要点、细节)
这篇文章主要介绍了python-for x in range的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-10- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 这篇文章主要介绍了python如何实现b站直播自动发送弹幕,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-02-20
- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
python Matplotlib基础--如何添加文本和标注
这篇文章主要介绍了python Matplotlib基础--如何添加文本和标注,帮助大家更好的利用Matplotlib绘制图表,感兴趣的朋友可以了解下...2021-01-26- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
intellij idea快速查看当前类中的所有方法(推荐)
这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02- 1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
js导出table数据到excel即导出为EXCEL文档的方法
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13