本篇文章小编给大家分享一下python编程普通及类和静态方法代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
运行环境
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
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔